proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Category.Instance.Bool

Documentation

data BOOL Source Comments #

Constructors

FLS 
TRU 

Instances

Instances details
Monoidal BOOL Source Comments # 
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

par :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL) (d :: BOOL). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments #

leftUnitor :: forall (a :: BOOL). Obj a -> ((Unit :: BOOL) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: BOOL). Obj a -> a ~> ((Unit :: BOOL) ** a) Source Comments #

rightUnitor :: forall (a :: BOOL). Obj a -> (a ** (Unit :: BOOL)) ~> a Source Comments #

rightUnitorInv :: forall (a :: BOOL). Obj a -> a ~> (a ** (Unit :: BOOL)) Source Comments #

associator :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

SymMonoidal BOOL Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

swap' :: forall (a :: BOOL) (b :: BOOL). Obj a -> Obj b -> (a ** b) ~> (b ** a) Source Comments #

CategoryOf BOOL Source Comments #

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 Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type 'TRU || 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU || 'TRU = 'TRU
type 'TRU || 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU || 'FLS = 'TRU
type 'FLS || 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS || 'TRU = 'TRU
type 'FLS || 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS || 'FLS = 'FLS

Methods

lft' :: forall (a :: BOOL) (b :: BOOL). Obj a -> Obj b -> a ~> (a || b) Source Comments #

rgt' :: forall (a :: BOOL) (b :: BOOL). Obj a -> Obj b -> b ~> (a || b) Source Comments #

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

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

HasBinaryProducts BOOL Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type 'FLS && 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS && 'FLS = 'FLS
type 'FLS && 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS && 'TRU = 'FLS
type 'TRU && 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU && 'FLS = 'FLS
type 'TRU && 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU && 'TRU = 'TRU

Methods

fst' :: forall (a :: BOOL) (b :: BOOL). Obj a -> Obj b -> (a && b) ~> a Source Comments #

snd' :: forall (a :: BOOL) (b :: BOOL). Obj a -> Obj b -> (a && b) ~> b Source Comments #

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

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

Closed BOOL Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type 'TRU ~~> 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU ~~> 'TRU = 'TRU
type 'TRU ~~> 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU ~~> 'FLS = 'FLS
type 'FLS ~~> 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS ~~> 'TRU = 'TRU
type 'FLS ~~> 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS ~~> 'FLS = 'TRU

Methods

curry' :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments #

uncurry' :: forall (b :: BOOL) (c :: BOOL) (a :: BOOL). Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments #

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

HasInitialObject BOOL Source Comments # 
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). Obj a -> (InitialObject :: BOOL) ~> a Source Comments #

HasTerminalObject BOOL Source Comments # 
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). Obj a -> a ~> (TerminalObject :: BOOL) Source Comments #

Promonad Booleans Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

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

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

Profunctor Booleans Source Comments # 
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 Comments #

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

type Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

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

Defined in Proarrow.Category.Instance.Bool

type TerminalObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

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

Defined in Proarrow.Category.Instance.Bool

type Ob (b :: BOOL) = IsBool b
type (a :: BOOL) ** (b :: BOOL) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

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

Defined in Proarrow.Category.Instance.Bool

type 'FLS || 'FLS = 'FLS
type 'FLS || 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS || 'TRU = 'TRU
type 'TRU || 'FLS Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU || 'FLS = 'TRU
type 'TRU || 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU || 'TRU = 'TRU
type 'FLS && 'FLS Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS && 'FLS = 'FLS
type 'FLS && 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS && 'TRU = 'FLS
type 'TRU && 'FLS Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU && 'FLS = 'FLS
type 'TRU && 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU && 'TRU = 'TRU
type 'FLS ~~> 'FLS Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS ~~> 'FLS = 'TRU
type 'FLS ~~> 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS ~~> 'TRU = 'TRU
type 'TRU ~~> 'FLS Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU ~~> 'FLS = 'FLS
type 'TRU ~~> 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU ~~> 'TRU = 'TRU

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

Constructors

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

Instances

Instances details
Promonad Booleans Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

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

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

Profunctor Booleans Source Comments # 
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 Comments #

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

class IsBool (b :: BOOL) where Source Comments #

Methods

boolId :: b ~> b Source Comments #

Instances

Instances details
IsBool 'FLS Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

IsBool 'TRU Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool