proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.Bool

Synopsis

Documentation

data BOOL Source Github #

Constructors

FLS 
TRU 

Instances

Instances details
Monoidal BOOL Source Github #

Products as monoidal structure.

Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) ** (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) ** (b :: BOOL) = a && b

Methods

withOb2 :: forall (a :: BOOL) (b :: BOOL) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github #

leftUnitor :: forall (a :: BOOL). Ob a => ((Unit :: BOOL) ** a) ~> a Source Github #

leftUnitorInv :: forall (a :: BOOL). Ob a => a ~> ((Unit :: BOOL) ** a) Source Github #

rightUnitor :: forall (a :: BOOL). Ob a => (a ** (Unit :: BOOL)) ~> a Source Github #

rightUnitorInv :: forall (a :: BOOL). Ob a => a ~> (a ** (Unit :: BOOL)) Source Github #

associator :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Github #

associatorInv :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Github #

SymMonoidal BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

swap :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => (a ** b) ~> (b ** a) Source Github #

CopyDiscard BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

copy :: forall (a :: BOOL). Ob a => a ~> (a ** a) Source Github #

discard :: forall (a :: BOOL). Ob a => a ~> (Unit :: BOOL) Source Github #

Distributive BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

distL :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => (a ** (b || c)) ~> ((a ** b) || (a ** c)) Source Github #

distR :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => ((a || b) ** c) ~> ((a ** c) || (b ** c)) Source Github #

distL0 :: forall (a :: BOOL). Ob a => (a ** (InitialObject :: BOOL)) ~> (InitialObject :: BOOL) Source Github #

distR0 :: forall (a :: BOOL). Ob a => ((InitialObject :: BOOL) ** a) ~> (InitialObject :: BOOL) Source Github #

CategoryOf BOOL Source Github #

The category of 2 objects and one arrow between them, a.k.a. the walking arrow.

Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (~>) = Booleans
type Ob (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Ob (b :: BOOL) = IsBool b
HasBinaryCoproducts BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type 'TRU || (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU || (b :: BOOL) = 'TRU
type 'FLS || (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS || (b :: BOOL) = b
type (a :: BOOL) || 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) || 'TRU = 'TRU
type (a :: BOOL) || 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) || 'FLS = a

Methods

withObCoprod :: forall (a :: BOOL) (b :: BOOL) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: BOOL) (a :: BOOL) (y :: BOOL). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: BOOL) (b :: BOOL) (x :: BOOL) (y :: BOOL). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryProducts BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type 'FLS && (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS && (b :: BOOL) = 'FLS
type 'TRU && (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU && (b :: BOOL) = b
type (a :: BOOL) && 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) && 'FLS = 'FLS
type (a :: BOOL) && 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) && 'TRU = a

Methods

withObProd :: forall (a :: BOOL) (b :: BOOL) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Github #

fst :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => (a && b) ~> a Source Github #

snd :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => (a && b) ~> b Source Github #

(&&&) :: forall (a :: BOOL) (x :: BOOL) (y :: BOOL). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Github #

(***) :: forall (a :: BOOL) (b :: BOOL) (x :: BOOL) (y :: BOOL). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Github #

StarAutonomous BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type Dual 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Dual 'TRU = 'FLS
type Dual 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Dual 'FLS = 'TRU

Methods

dual :: forall (a :: BOOL) (b :: BOOL). (a ~> b) -> Dual b ~> Dual a Source Github #

dualInv :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Github #

linDist :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Github #

linDistInv :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Github #

Closed BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type (a :: BOOL) ~~> (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) ~~> (b :: BOOL) = ExpSA a b

Methods

withObExp :: forall (a :: BOOL) (b :: BOOL) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Github #

curry :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Github #

apply :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Github #

(^^^) :: forall (a :: BOOL) (b :: BOOL) (x :: BOOL) (y :: BOOL). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Github #

HasInitialObject BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

initiate :: forall (a :: BOOL). Ob a => (InitialObject :: BOOL) ~> a Source Github #

HasParamNNO BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type NNO 
Instance details

Defined in Proarrow.Category.Instance.Bool

type NNO = 'TRU

Methods

zero :: (Unit :: BOOL) ~> (NNO :: BOOL) Source Github #

succ :: (NNO :: BOOL) ~> (NNO :: BOOL) Source Github #

nnoUniv :: forall (a :: BOOL) (x :: BOOL). (a ~> x) -> (x ~> x) -> (a ** (NNO :: BOOL)) ~> x Source Github #

HasPullbacks BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

pullback :: forall (o :: BOOL) (a :: BOOL) (b :: BOOL). (a ~> o) -> (b ~> o) -> Cosink '[a, b] Source Github #

HasPushouts BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

pushout :: forall (o :: BOOL) (a :: BOOL) (b :: BOOL). (o ~> a) -> (o ~> b) -> Sink '[a, b] Source Github #

HasTerminalObject BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

terminate :: forall (a :: BOOL). Ob a => a ~> (TerminalObject :: BOOL) Source Github #

Promonad Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

id :: forall (a :: BOOL). Ob a => Booleans a a Source Github #

(.) :: forall (b :: BOOL) (c :: BOOL) (a :: BOOL). Booleans b c -> Booleans a b -> Booleans a c Source Github #

Ob a => Comonoid (a :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

counit :: a ~> (Unit :: BOOL) Source Github #

comult :: a ~> (a ** a) Source Github #

Monoid 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

ThinProfunctor Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type HasArrow Booleans (a :: BOOL) (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type HasArrow Booleans (a :: BOOL) (b :: BOOL) = IsBoolArr a b

Methods

arr :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b, HasArrow Booleans a b) => Booleans a b Source Github #

withArr :: forall (a :: BOOL) (b :: BOOL) r. Booleans a b -> (HasArrow Booleans a b => r) -> r Source Github #

MonoidalProfunctor Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

par0 :: Booleans (Unit :: BOOL) (Unit :: BOOL) Source Github #

par :: forall (x1 :: BOOL) (x2 :: BOOL) (y1 :: BOOL) (y2 :: BOOL). Booleans x1 x2 -> Booleans y1 y2 -> Booleans (x1 ** y1) (x2 ** y2) Source Github #

Profunctor Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

dimap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL) (d :: BOOL). (c ~> a) -> (b ~> d) -> Booleans a b -> Booleans c d Source Github #

lmap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL). (c ~> a) -> Booleans a b -> Booleans c b Source Github #

rmap :: forall (b :: BOOL) (d :: BOOL) (a :: BOOL). (b ~> d) -> Booleans a b -> Booleans a d Source Github #

(\\) :: forall (a :: BOOL) (b :: BOOL) r. ((Ob a, Ob b) => r) -> Booleans a b -> r Source Github #

InternalIn BOOL FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type C0 BOOL 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C0 BOOL = 'FS Nat2
type C1 BOOL 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C1 BOOL = 'FS Nat3
Corepresentable Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type Booleans %% (x :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans %% (x :: BOOL) = x

Methods

coindex :: forall (a :: BOOL) (b :: BOOL). Booleans a b -> (Booleans %% a) ~> b Source Github #

cotabulate :: forall (a :: BOOL) (b :: BOOL). Ob a => ((Booleans %% a) ~> b) -> Booleans a b Source Github #

corepMap :: forall (a :: BOOL) (b :: BOOL). (a ~> b) -> (Booleans %% a) ~> (Booleans %% b) Source Github #

trivialCorep :: forall (a :: BOOL). Ob a => Booleans a (Booleans %% a) Source Github #

Representable Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type Booleans % (x :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans % (x :: BOOL) = x

Methods

index :: forall (a :: BOOL) (b :: BOOL). Booleans a b -> a ~> (Booleans % b) Source Github #

tabulate :: forall (b :: BOOL) (a :: BOOL). Ob b => (a ~> (Booleans % b)) -> Booleans a b Source Github #

repMap :: forall (a :: BOOL) (b :: BOOL). (a ~> b) -> (Booleans % a) ~> (Booleans % b) Source Github #

trivialRep :: forall (a :: BOOL). Ob a => Booleans (Booleans % a) a Source Github #

Profunctor (NonTrivialProfunctor ft :: BOOL -> BOOL -> Type) Source Github #

There are 4 non-trivial profunctors BOOL +-> BOOL, all with FLS->TRU, and optionally FLS->FLS and TRU->TRU.

Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

dimap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL) (d :: BOOL). (c ~> a) -> (b ~> d) -> NonTrivialProfunctor ft a b -> NonTrivialProfunctor ft c d Source Github #

lmap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL). (c ~> a) -> NonTrivialProfunctor ft a b -> NonTrivialProfunctor ft c b Source Github #

rmap :: forall (b :: BOOL) (d :: BOOL) (a :: BOOL). (b ~> d) -> NonTrivialProfunctor ft a b -> NonTrivialProfunctor ft a d Source Github #

(\\) :: forall (a :: BOOL) (b :: BOOL) r. ((Ob a, Ob b) => r) -> NonTrivialProfunctor ft a b -> r Source Github #

type Unit Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (~>) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (~>) = Booleans
type InitialObject Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type NNO Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type NNO = 'TRU
type TerminalObject Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Ob (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Ob (b :: BOOL) = IsBool b
type Dual 'FLS Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Dual 'FLS = 'TRU
type Dual 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Dual 'TRU = 'FLS
type (a :: BOOL) ** (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) ** (b :: BOOL) = a && b
type 'FLS || (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS || (b :: BOOL) = b
type 'TRU || (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU || (b :: BOOL) = 'TRU
type (a :: BOOL) || 'FLS Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) || 'FLS = a
type (a :: BOOL) || 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) || 'TRU = 'TRU
type 'FLS && (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS && (b :: BOOL) = 'FLS
type 'TRU && (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU && (b :: BOOL) = b
type (a :: BOOL) && 'FLS Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) && 'FLS = 'FLS
type (a :: BOOL) && 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) && 'TRU = a
type (a :: BOOL) ~~> (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) ~~> (b :: BOOL) = ExpSA a b
type C0 BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C0 BOOL = 'FS Nat2
type C1 BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type C1 BOOL = 'FS Nat3
type Booleans %% (x :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans %% (x :: BOOL) = x
type Booleans % (x :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans % (x :: BOOL) = x
type HasArrow Booleans (a :: BOOL) (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type HasArrow Booleans (a :: BOOL) (b :: BOOL) = IsBoolArr a b

data Booleans (a :: BOOL) (b :: BOOL) where Source Github #

Constructors

Fls :: Booleans 'FLS 'FLS 
F2T :: Booleans 'FLS 'TRU 
Tru :: Booleans 'TRU 'TRU 

Instances

Instances details
Promonad Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

id :: forall (a :: BOOL). Ob a => Booleans a a Source Github #

(.) :: forall (b :: BOOL) (c :: BOOL) (a :: BOOL). Booleans b c -> Booleans a b -> Booleans a c Source Github #

ThinProfunctor Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type HasArrow Booleans (a :: BOOL) (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type HasArrow Booleans (a :: BOOL) (b :: BOOL) = IsBoolArr a b

Methods

arr :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b, HasArrow Booleans a b) => Booleans a b Source Github #

withArr :: forall (a :: BOOL) (b :: BOOL) r. Booleans a b -> (HasArrow Booleans a b => r) -> r Source Github #

MonoidalProfunctor Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

par0 :: Booleans (Unit :: BOOL) (Unit :: BOOL) Source Github #

par :: forall (x1 :: BOOL) (x2 :: BOOL) (y1 :: BOOL) (y2 :: BOOL). Booleans x1 x2 -> Booleans y1 y2 -> Booleans (x1 ** y1) (x2 ** y2) Source Github #

Profunctor Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

dimap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL) (d :: BOOL). (c ~> a) -> (b ~> d) -> Booleans a b -> Booleans c d Source Github #

lmap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL). (c ~> a) -> Booleans a b -> Booleans c b Source Github #

rmap :: forall (b :: BOOL) (d :: BOOL) (a :: BOOL). (b ~> d) -> Booleans a b -> Booleans a d Source Github #

(\\) :: forall (a :: BOOL) (b :: BOOL) r. ((Ob a, Ob b) => r) -> Booleans a b -> r Source Github #

Corepresentable Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type Booleans %% (x :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans %% (x :: BOOL) = x

Methods

coindex :: forall (a :: BOOL) (b :: BOOL). Booleans a b -> (Booleans %% a) ~> b Source Github #

cotabulate :: forall (a :: BOOL) (b :: BOOL). Ob a => ((Booleans %% a) ~> b) -> Booleans a b Source Github #

corepMap :: forall (a :: BOOL) (b :: BOOL). (a ~> b) -> (Booleans %% a) ~> (Booleans %% b) Source Github #

trivialCorep :: forall (a :: BOOL). Ob a => Booleans a (Booleans %% a) Source Github #

Representable Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type Booleans % (x :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans % (x :: BOOL) = x

Methods

index :: forall (a :: BOOL) (b :: BOOL). Booleans a b -> a ~> (Booleans % b) Source Github #

tabulate :: forall (b :: BOOL) (a :: BOOL). Ob b => (a ~> (Booleans % b)) -> Booleans a b Source Github #

repMap :: forall (a :: BOOL) (b :: BOOL). (a ~> b) -> (Booleans % a) ~> (Booleans % b) Source Github #

trivialRep :: forall (a :: BOOL). Ob a => Booleans (Booleans % a) a Source Github #

Show (Booleans a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Eq (Booleans a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

(==) :: Booleans a b -> Booleans a b -> Bool Github #

(/=) :: Booleans a b -> Booleans a b -> Bool Github #

type Booleans %% (x :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans %% (x :: BOOL) = x
type Booleans % (x :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Booleans % (x :: BOOL) = x
type HasArrow Booleans (a :: BOOL) (b :: BOOL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type HasArrow Booleans (a :: BOOL) (b :: BOOL) = IsBoolArr a b

class IsBool (Dual b) => IsBool (b :: BOOL) where Source Github #

Methods

boolId :: b ~> b Source Github #

Instances

Instances details
IsBool 'FLS Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

boolId :: 'FLS ~> 'FLS Source Github #

IsBool 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

boolId :: 'TRU ~> 'TRU Source Github #

class IsBoolArr (a :: BOOL) (b :: BOOL) where Source Github #

Methods

boolArr :: a ~> b Source Github #

Instances

Instances details
IsBoolArr 'FLS 'FLS Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

IsBoolArr 'FLS 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

IsBoolArr 'TRU 'TRU Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

data NonTrivialProfunctor (ft :: (BOOL, BOOL)) (a :: BOOL) (b :: BOOL) where Source Github #

Constructors

FF :: forall (tt :: BOOL). NonTrivialProfunctor '('TRU, tt) 'FLS 'FLS 
FT :: forall (ft :: (BOOL, BOOL)). NonTrivialProfunctor ft 'FLS 'TRU 
TT :: forall (ff :: BOOL). NonTrivialProfunctor '(ff, 'TRU) 'TRU 'TRU 

Instances

Instances details
Profunctor (NonTrivialProfunctor ft :: BOOL -> BOOL -> Type) Source Github #

There are 4 non-trivial profunctors BOOL +-> BOOL, all with FLS->TRU, and optionally FLS->FLS and TRU->TRU.

Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

dimap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL) (d :: BOOL). (c ~> a) -> (b ~> d) -> NonTrivialProfunctor ft a b -> NonTrivialProfunctor ft c d Source Github #

lmap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL). (c ~> a) -> NonTrivialProfunctor ft a b -> NonTrivialProfunctor ft c b Source Github #

rmap :: forall (b :: BOOL) (d :: BOOL) (a :: BOOL). (b ~> d) -> NonTrivialProfunctor ft a b -> NonTrivialProfunctor ft a d Source Github #

(\\) :: forall (a :: BOOL) (b :: BOOL) r. ((Ob a, Ob b) => r) -> NonTrivialProfunctor ft a b -> r Source Github #

Show (NonTrivialProfunctor ft a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Eq (NonTrivialProfunctor ft a b) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type ARROW k = FUN BOOL k Source Github #

The arrow category of k as functor category from 2 to k.

commSquare :: forall {k} (f :: BOOL +-> k) (g :: BOOL +-> k) (a :: k) (b :: k) (c :: k) (d :: k). (a ~ (f % 'FLS), b ~ (f % 'TRU), c ~ (g % 'FLS), d ~ (g % 'TRU)) => (('SUB f :: SUBCAT (Representable :: (BOOL +-> k) -> Constraint)) ~> ('SUB g :: SUBCAT (Representable :: (BOOL +-> k) -> Constraint))) -> (a ~> b, b ~> d, a ~> c, c ~> d) Source Github #