proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Object.Initial

Documentation

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

Associated Types

type InitialObject :: k Source Github #

Methods

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

Instances

Instances details
HasInitialObject Nat Source Github # 
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 Github #

HasInitialObject Nat Source Github # 
Instance details

Defined in Proarrow.Category.Instance.ZX

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.ZX

type InitialObject = 0

Methods

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

HasInitialObject BOOL Source Github # 
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 Github #

HasInitialObject KIND Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Cat

type InitialObject = 'K ()

Methods

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

HasInitialObject COST Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cost

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Cost

Methods

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

HasInitialObject FINREL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

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

HasInitialObject FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

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

HasInitialObject LINEAR Source Github # 
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 Github #

HasInitialObject POINTED Source Github # 
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 Github #

HasInitialObject () Source Github # 
Instance details

Defined in Proarrow.Object.Initial

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.Initial

type InitialObject = '()

Methods

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

HasInitialObject Type Source Github # 
Instance details

Defined in Proarrow.Object.Initial

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.Initial

Methods

initiate :: Ob a => (InitialObject :: Type) ~> a Source Github #

CategoryOf k => HasInitialObject (FAM k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

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

HasInitialObject (FIN ('S n)) Source Github # 
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 Github #

Num a => HasInitialObject (MatK a) Source Github # 
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 Github #

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

Defined in Proarrow.Object.Initial

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.Initial

Methods

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

HasInitialObject k => HasInitialObject (COPROD k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

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

HasInitialObject k => HasInitialObject (PROD k) Source Github # 
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 Github #

(Applicative f, HasInitialObject k) => HasInitialObject (AP f k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Ap

type InitialObject = 'A (InitialObject :: k) :: AP f k

Methods

initiate :: forall (a :: AP f k). Ob a => (InitialObject :: AP f k) ~> a Source Github #

(HasInitialObject k, Promonad p) => HasInitialObject (KLEISLI p) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

initiate :: forall (a :: KLEISLI p). Ob a => (InitialObject :: KLEISLI p) ~> a Source Github #

(CategoryOf j, CategoryOf k) => HasInitialObject (j +-> k) Source Github # 
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 Github #

Monoid m => HasInitialObject (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Monoid

type InitialObject = 'M :: MONOIDK m

Methods

initiate :: forall (a :: MONOIDK m). Ob a => (InitialObject :: MONOIDK m) ~> a Source Github #

(HasInitialObject j, HasInitialObject k) => HasInitialObject (j, k) Source Github # 
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 Github #

CategoryOf k1 => HasInitialObject (k1 -> Type) Source Github # 
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 Github #

(HasInitialObject j, CategoryOf k, CodiscreteProfunctor p) => HasInitialObject (COLLAGE p) Source Github # 
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 Github #

(Ok cs p, Elem HasInitialObject cs) => HasInitialObject (FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Object.Initial

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.Initial

type InitialObject = InitF :: FREE cs p

Methods

initiate :: forall (a :: FREE cs p). Ob a => (InitialObject :: FREE cs p) ~> a Source Github #

initiate' :: forall {k} (a' :: k) (a :: k). HasInitialObject k => (a' ~> a) -> (InitialObject :: k) ~> a Source Github #

class (HasInitialObject k, HasTerminalObject k, (InitialObject :: k) ~ (TerminalObject :: k)) => HasZeroObject k where Source Github #

Methods

zero :: forall (a :: k) (b :: k). (Ob a, Ob b) => a ~> b Source Github #

Instances

Instances details
(HasInitialObject k, HasTerminalObject k, (InitialObject :: k) ~ (TerminalObject :: k)) => HasZeroObject k Source Github # 
Instance details

Defined in Proarrow.Object.Initial

Methods

zero :: forall (a :: k) (b :: k). (Ob a, Ob b) => a ~> b Source Github #

data family InitF :: k Source Github #

Instances

Instances details
Elem HasInitialObject cs => IsFreeOb (InitF :: FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Object.Initial

Methods

withLowerOb :: forall {k} (f :: j +-> k) r. (Representable f, All cs k) => (Ob (Lower f (InitF :: FREE cs p)) => r) -> r Source Github #

type Lower (f :: j +-> k) (InitF :: FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Object.Initial

type Lower (f :: j +-> k) (InitF :: FREE cs p) = InitialObject :: k

Orphan instances

(HasInitialObject j, CategoryOf k) => Corepresentable (TerminalProfunctor :: k -> j -> Type) Source Github # 
Instance details

Methods

coindex :: forall (a :: k) (b :: j). TerminalProfunctor a b -> ((TerminalProfunctor :: k -> j -> Type) %% a) ~> b Source Github #

cotabulate :: forall (a :: k) (b :: j). Ob a => (((TerminalProfunctor :: k -> j -> Type) %% a) ~> b) -> TerminalProfunctor a b Source Github #

corepMap :: forall (a :: k) (b :: k). (a ~> b) -> ((TerminalProfunctor :: k -> j -> Type) %% a) ~> ((TerminalProfunctor :: k -> j -> Type) %% b) Source Github #

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

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Object.Initial

Methods

terminate :: forall (a :: OPPOSITE k). Ob a => a ~> (TerminalObject :: OPPOSITE k) Source Github #