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

Proarrow.Category.Colimit

Documentation

class Corepresentable (Colimit j1 d) => IsCorepresentableColimit (j1 :: PRO i j) (d :: PRO i k) Source Comments #

Instances

Instances details
Corepresentable (Colimit j2 d) => IsCorepresentableColimit (j2 :: PRO i j1) (d :: PRO i k) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

class (forall (d :: PRO i k). Corepresentable d => IsCorepresentableColimit j d) => HasColimits (j :: PRO i a) k where Source Comments #

Associated Types

type Colimit (j :: PRO i a) (d :: PRO i k) :: PRO a k Source Comments #

Methods

colimit :: forall (d :: PRO i k). Corepresentable d => Colimit j d :~> (j |> d) Source Comments #

colimitInv :: forall (d :: PRO i k). Corepresentable d => (j |> d) :~> Colimit j d Source Comments #

Instances

Instances details
HasInitialObject k => HasColimits (Unweighted :: VOID -> UNIT -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

colimit :: forall (d :: PRO VOID k). Corepresentable d => Colimit (Unweighted :: VOID -> UNIT -> Type) d :~> ((Unweighted :: VOID -> UNIT -> Type) |> d) Source Comments #

colimitInv :: forall (d :: PRO VOID k). Corepresentable d => ((Unweighted :: VOID -> UNIT -> Type) |> d) :~> Colimit (Unweighted :: VOID -> UNIT -> Type) d Source Comments #

HasBinaryCoproducts k => HasColimits (Unweighted :: COPRODUCT UNIT UNIT -> UNIT -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

data InitialLimit (d :: PRO VOID k) (a :: UNIT) (b :: k) where Source Comments #

Constructors

InitialLimit :: forall {k} (d :: PRO VOID k) (b :: k). ((InitialObject :: k) ~> b) -> InitialLimit d 'U b 

Instances

Instances details
HasInitialObject k => Profunctor (InitialLimit d :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

dimap :: forall (c :: UNIT) (a :: UNIT) (b :: k) (d0 :: k). (c ~> a) -> (b ~> d0) -> InitialLimit d a b -> InitialLimit d c d0 Source Comments #

(\\) :: forall (a :: UNIT) (b :: k) r. ((Ob a, Ob b) => r) -> InitialLimit d a b -> r Source Comments #

HasInitialObject k => Corepresentable (InitialLimit d :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

coindex :: forall (a :: UNIT) (b :: k). InitialLimit d a b -> (InitialLimit d %% a) ~> b Source Comments #

cotabulate :: forall (a :: UNIT) (b :: k). Ob a => ((InitialLimit d %% a) ~> b) -> InitialLimit d a b Source Comments #

corepMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (InitialLimit d %% a) ~> (InitialLimit d %% b) Source Comments #

type (InitialLimit d :: UNIT -> k -> Type) %% 'U Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

type (InitialLimit d :: UNIT -> k -> Type) %% 'U = InitialObject :: k

data CoproductColimit (d :: PRO (COPRODUCT UNIT UNIT) k) (a :: UNIT) (b :: k) where Source Comments #

Constructors

CoproductColimit :: forall {k} (d :: PRO (COPRODUCT UNIT UNIT) k) (b :: k). (((d %% ('L 'U :: COPRODUCT UNIT UNIT)) || (d %% ('R 'U :: COPRODUCT UNIT UNIT))) ~> b) -> CoproductColimit d 'U b 

Instances

Instances details
CategoryOf k => Profunctor (CoproductColimit d :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

dimap :: forall (c :: UNIT) (a :: UNIT) (b :: k) (d0 :: k). (c ~> a) -> (b ~> d0) -> CoproductColimit d a b -> CoproductColimit d c d0 Source Comments #

(\\) :: forall (a :: UNIT) (b :: k) r. ((Ob a, Ob b) => r) -> CoproductColimit d a b -> r Source Comments #

(HasBinaryCoproducts k, Corepresentable d) => Corepresentable (CoproductColimit d :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

coindex :: forall (a :: UNIT) (b :: k). CoproductColimit d a b -> (CoproductColimit d %% a) ~> b Source Comments #

cotabulate :: forall (a :: UNIT) (b :: k). Ob a => ((CoproductColimit d %% a) ~> b) -> CoproductColimit d a b Source Comments #

corepMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (CoproductColimit d %% a) ~> (CoproductColimit d %% b) Source Comments #

type (CoproductColimit d :: UNIT -> k -> Type) %% 'U Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

type (CoproductColimit d :: UNIT -> k -> Type) %% 'U = (d %% ('L 'U :: COPRODUCT UNIT UNIT)) || (d %% ('R 'U :: COPRODUCT UNIT UNIT))

cochoose :: forall k (d :: PRO (COPRODUCT UNIT UNIT) k) (b :: COPRODUCT UNIT UNIT). (HasBinaryCoproducts k, Corepresentable d) => Obj b -> (d %% b) ~> ((d %% ('L 'U :: COPRODUCT UNIT UNIT)) || (d %% ('R 'U :: COPRODUCT UNIT UNIT))) Source Comments #