proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Bicategory.Terminal

Documentation

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

Constructors

Terminal :: Terminal 'Unit 'Unit 

Instances

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

Defined in Proarrow.Category.Bicategory.Terminal

Methods

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

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

Profunctor (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Github # 
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 Github #

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

Orphan instances

Bicategory Unit Source Github # 
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

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 Github #

withOb2 :: forall {i :: ()} {j :: ()} {k :: ()} (a :: Unit j k) (b :: Unit i j) r. (Ob a, Ob b, Ob0 Unit i, Ob0 Unit j, Ob0 Unit k) => (Ob (O a b) => r) -> r Source Github #

withOb0s :: forall {j :: ()} {k :: ()} (a :: Unit j k) r. Ob a => ((Ob0 Unit j, Ob0 Unit k) => r) -> r Source Github #

(\\\) :: 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 Github #

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

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

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

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

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 Github #

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 Github #

Monad 'Unit Source Github # 
Instance details

Methods

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

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

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

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

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