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

Proarrow.Category.Instance.Unit

Documentation

data Unit (a :: ()) (b :: ()) where Source Comments #

Constructors

Unit :: Unit '() '() 

Instances

Instances details
Bicategory Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

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 #

DaggerProfunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

dagger :: forall (a :: ()) (b :: ()). Unit a b -> Unit b a Source Comments #

TracedMonoidalProfunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

trace :: forall (u :: ()) (x :: ()) (y :: ()). (Ob x, Ob y, Ob u) => Unit (x ** u) (y ** u) -> Unit x y Source Comments #

trace' :: forall (x :: ()) (x' :: ()) (y :: ()) (y' :: ()) (u :: ()) (u' :: ()). (x ~> x') -> (y ~> y') -> (u ~> u') -> Unit (x' ** u') (y ** u) -> Unit x y' Source Comments #

Promonad Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

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

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

Discrete Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

withEq :: forall (a :: ()) (b :: ()) r. Unit a b -> (a ~ b => r) -> r Source Comments #

MonoidalProfunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

par0 :: Unit (Unit :: ()) (Unit :: ()) Source Comments #

par :: forall (x1 :: ()) (x2 :: ()) (y1 :: ()) (y2 :: ()). Unit x1 x2 -> Unit y1 y2 -> Unit (x1 ** y1) (x2 ** y2) Source Comments #

Profunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

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

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

Codiscrete Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

anyArr :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => Unit a b Source Comments #

ThinProfunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Associated Types

type HasArrow Unit '() '() 
Instance details

Defined in Proarrow.Category.Instance.Unit

type HasArrow Unit '() '() = ()

Methods

arr :: forall (a :: ()) (b :: ()). (Ob a, Ob b, HasArrow Unit a b) => Unit a b Source Comments #

withArr :: forall (a :: ()) (b :: ()) r. Unit a b -> (HasArrow Unit a b => r) -> r Source Comments #

Monad 'Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Methods

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

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

Strong Unit Unit Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

act :: forall (a :: ()) (b :: ()) (x :: ()) (y :: ()). Unit a b -> Unit x y -> Unit (Act a x) (Act b y) Source Comments #

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

Defined in Proarrow.Category.Bicategory.Terminal

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type (~>) = Terminal :: Unit j k -> Unit j k -> Type
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 #

type I Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type I = 'Unit
type Ob0 Unit (k :: ()) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type Ob0 Unit (k :: ()) = k ~ '()
type HasArrow Unit '() '() Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

type HasArrow Unit '() '() = ()
type O (a :: Unit j '()) (b :: Unit '() j) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type O (a :: Unit j '()) (b :: Unit '() j) = 'Unit
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type (~>) = Terminal :: Unit j k -> Unit j k -> Type
type Ob (p :: Unit j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type Ob (p :: Unit j k) = p ~~ 'Unit

Orphan instances

CategoryOf () Source Comments #

The category with one object, the terminal category.

Instance details

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Unit

type (~>) = Unit
type Ob (a :: ()) 
Instance details

Defined in Proarrow.Category.Instance.Unit

type Ob (a :: ()) = a ~ '()
HasInitialObject () Source Comments # 
Instance details

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Unit

type InitialObject = '()

Methods

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

initiate' :: forall (a' :: ()) (a :: ()). (a' ~> a) -> (InitialObject :: ()) ~> a Source Comments #

HasTerminalObject () Source Comments # 
Instance details

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Unit

type TerminalObject = '()

Methods

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

terminate' :: forall (a :: ()) (a' :: ()). (a ~> a') -> a ~> (TerminalObject :: ()) Source Comments #