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

Proarrow.Object.Initial

Documentation

class (CategoryOf k, Ob (InitialObject :: k)) => HasInitialObject k where Source Comments #

Minimal complete definition

initiate | initiate'

Associated Types

type InitialObject :: k Source Comments #

Methods

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

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

Instances

Instances details
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). Ob a => (InitialObject :: BOOL) ~> a Source Comments #

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

HasInitialObject LINEAR Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

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

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

HasInitialObject POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

HasInitialObject Nat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

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

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

HasInitialObject () Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

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 #

HasInitialObject Type Source Comments # 
Instance details

Defined in Proarrow.Object.Initial

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.Initial

HasInitialObject (FIN ('S n)) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Fin

type InitialObject = 'FZ :: FIN ('S n)

Methods

initiate :: forall (a :: FIN ('S n)). Ob a => (InitialObject :: FIN ('S n)) ~> a Source Comments #

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

Num a => HasInitialObject (MatK a) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Mat

type InitialObject = 'M 'Z :: MatK a

Methods

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

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

HasTerminalObject k => HasInitialObject (OPPOSITE k) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Opposite

Methods

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

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

BiCCC k => HasInitialObject (FK k) Source Comments # 
Instance details

Defined in Proarrow.Helper.CCC

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Helper.CCC

type InitialObject = InitF :: FK k

Methods

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

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

HasInitialObject k => HasInitialObject (PROD k) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

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

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

(CategoryOf j, CategoryOf k) => HasInitialObject (PRO j k) Source Comments # 
Instance details

Defined in Proarrow.Object.Initial

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.Initial

Methods

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

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

(HasInitialObject j, HasInitialObject k) => HasInitialObject (j, k) Source Comments # 
Instance details

Defined in Proarrow.Object.Initial

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.Initial

Methods

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

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

CategoryOf k1 => HasInitialObject (k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Nat

type InitialObject = Const Void :: k1 -> Type

Methods

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

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

(HasInitialObject j, CategoryOf k, Codiscrete p) => HasInitialObject (COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Collage

type InitialObject = 'L (InitialObject :: j) :: COLLAGE p

Methods

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

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