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

Proarrow.Category.Bicategory.Terminal

Documentation

data Terminal (a :: Unit j k) (b :: Unit j k) where Source Comments #

Constructors

Terminal :: Terminal 'Unit 'Unit 

Instances

Instances details
Promonad (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Methods

id :: forall (a :: Unit '() '()). Ob a => Terminal a a Source Comments #

(.) :: forall (b :: Unit '() '()) (c :: Unit '() '()) (a :: Unit '() '()). Terminal b c -> Terminal a b -> Terminal a c Source Comments #

Profunctor (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Methods

dimap :: forall (c :: Unit '() '()) (a :: Unit '() '()) (b :: Unit '() '()) (d :: Unit '() '()). (c ~> a) -> (b ~> d) -> Terminal a b -> Terminal c d Source Comments #

(\\) :: forall (a :: Unit '() '()) (b :: Unit '() '()) r. ((Ob a, Ob b) => r) -> Terminal a b -> r Source Comments #

Orphan instances

Bicategory Unit Source Comments # 
Instance details

Associated Types

type Ob0 Unit (k :: ()) 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type Ob0 Unit (k :: ()) = k ~ '()
type I 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type I = 'Unit
type O (a :: Unit j '()) (b :: Unit '() j) 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type O (a :: Unit j '()) (b :: Unit '() j) = 'Unit

Methods

iObj :: forall (i :: ()). Ob0 Unit i => Obj (I :: Unit i i) Source Comments #

o :: forall {i :: ()} (j :: ()) (k :: ()) (a :: Unit j k) (b :: Unit j k) (c :: Unit i j) (d :: Unit i j). (a ~> b) -> (c ~> d) -> O a c ~> O b d Source Comments #

(\\\) :: forall (i :: ()) (j :: ()) (ps :: Unit i j) (qs :: Unit i j) r. ((Ob0 Unit i, Ob0 Unit j, Ob ps, Ob qs) => r) -> (ps ~> qs) -> r Source Comments #

leftUnitor :: forall {i :: ()} {j :: ()} (a :: Unit i j). (Ob0 Unit i, Ob0 Unit j, Ob a) => O (I :: Unit j j) a ~> a Source Comments #

leftUnitorInv :: forall {i :: ()} {j :: ()} (a :: Unit i j). (Ob0 Unit i, Ob0 Unit j, Ob a) => a ~> O (I :: Unit j j) a Source Comments #

rightUnitor :: forall {i :: ()} {j :: ()} (a :: Unit i j). (Ob0 Unit i, Ob0 Unit j, Ob a) => O a (I :: Unit i i) ~> a Source Comments #

rightUnitorInv :: forall {i :: ()} {j :: ()} (a :: Unit i j). (Ob0 Unit i, Ob0 Unit j, Ob a) => a ~> O a (I :: Unit i i) Source Comments #

associator :: forall {h :: ()} {i :: ()} {j :: ()} {k :: ()} (a :: Unit j k) (b :: Unit i j) (c :: Unit h i). (Ob0 Unit h, Ob0 Unit i, Ob0 Unit j, Ob0 Unit k, Ob a, Ob b, Ob c) => O (O a b) c ~> O a (O b c) Source Comments #

associatorInv :: forall {h :: ()} {i :: ()} {j :: ()} {k :: ()} (a :: Unit j k) (b :: Unit i j) (c :: Unit h i). (Ob0 Unit h, Ob0 Unit i, Ob0 Unit j, Ob0 Unit k, Ob a, Ob b, Ob c) => O a (O b c) ~> O (O a b) c Source Comments #

Monad 'Unit Source Comments # 
Instance details

Methods

eta :: (I :: Unit '() '()) ~> 'Unit Source Comments #

mu :: O 'Unit 'Unit ~> 'Unit Source Comments #

(j ~ '(), k ~ '()) => CategoryOf (Unit j k) Source Comments # 
Instance details

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type (~>) = Terminal :: Unit j k -> Unit j k -> Type