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

Proarrow.Category.Instance.Coproduct

Documentation

data COPRODUCT j k Source Comments #

Constructors

L j 
R k 

Instances

Instances details
HasBinaryProducts k => HasLimits (Unweighted :: UNIT -> COPRODUCT UNIT UNIT -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

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

Defined in Proarrow.Category.Instance.Coproduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

type (~>) = ((~>) :: CAT j) :++: ((~>) :: CAT k)
HasBinaryCoproducts k => HasColimits (Unweighted :: COPRODUCT UNIT UNIT -> UNIT -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Functor (Collage :: PRO j k -> COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Collage

Methods

map :: forall (a :: PRO j k) (b :: PRO j k). (a ~> b) -> Collage a ~> Collage b Source Comments #

Profunctor p => Profunctor (Collage p :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Collage

Methods

dimap :: forall (c :: COPRODUCT j k) (a :: COPRODUCT j k) (b :: COPRODUCT j k) (d :: COPRODUCT j k). (c ~> a) -> (b ~> d) -> Collage p a b -> Collage p c d Source Comments #

(\\) :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k) r. ((Ob a, Ob b) => r) -> Collage p a b -> r Source Comments #

(Profunctor c, Profunctor d) => Profunctor (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

dimap :: forall (c0 :: COPRODUCT j k) (a :: COPRODUCT j k) (b :: COPRODUCT j k) (d0 :: COPRODUCT j k). (c0 ~> a) -> (b ~> d0) -> (c :++: d) a b -> (c :++: d) c0 d0 Source Comments #

(\\) :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k) r. ((Ob a, Ob b) => r) -> (c :++: d) a b -> r Source Comments #

Profunctor p => Promonad (Collage p :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Collage

Methods

id :: forall (a :: COPRODUCT j k). Ob a => Collage p a a Source Comments #

(.) :: forall (b :: COPRODUCT j k) (c :: COPRODUCT j k) (a :: COPRODUCT j k). Collage p b c -> Collage p a b -> Collage p a c Source Comments #

(IsCategoryOf j c, IsCategoryOf k d) => Promonad (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments #

The coproduct category of the categories c and d.

Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

id :: forall (a :: COPRODUCT j k). Ob a => (c :++: d) a a Source Comments #

(.) :: forall (b :: COPRODUCT j k) (c0 :: COPRODUCT j k) (a :: COPRODUCT j k). (c :++: d) b c0 -> (c :++: d) a b -> (c :++: d) a c0 Source Comments #

type Limit (Unweighted :: UNIT -> COPRODUCT UNIT UNIT -> Type) (d :: PRO k (COPRODUCT UNIT UNIT)) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

type (~>) = ((~>) :: CAT j) :++: ((~>) :: CAT k)
type Ob (a :: COPRODUCT j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

type Ob (a :: COPRODUCT j k) = IsCoproduct a
type Colimit (Unweighted :: COPRODUCT UNIT UNIT -> UNIT -> Type) (d :: PRO (COPRODUCT UNIT UNIT) k) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

data ((c :: CAT j) :++: (d :: CAT k)) (a :: COPRODUCT j k) (b :: COPRODUCT j k) where Source Comments #

Constructors

InjL :: forall {j} {k} (c :: CAT j) (a1 :: j) (b1 :: j) (d :: CAT k). c a1 b1 -> (c :++: d) ('L a1 :: COPRODUCT j k) ('L b1 :: COPRODUCT j k) 
InjR :: forall {k} {j} (d :: CAT k) (a1 :: k) (b1 :: k) (c :: CAT j). d a1 b1 -> (c :++: d) ('R a1 :: COPRODUCT j k) ('R b1 :: COPRODUCT j k) 

Instances

Instances details
(Profunctor c, Profunctor d) => Profunctor (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

dimap :: forall (c0 :: COPRODUCT j k) (a :: COPRODUCT j k) (b :: COPRODUCT j k) (d0 :: COPRODUCT j k). (c0 ~> a) -> (b ~> d0) -> (c :++: d) a b -> (c :++: d) c0 d0 Source Comments #

(\\) :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k) r. ((Ob a, Ob b) => r) -> (c :++: d) a b -> r Source Comments #

(IsCategoryOf j c, IsCategoryOf k d) => Promonad (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments #

The coproduct category of the categories c and d.

Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

id :: forall (a :: COPRODUCT j k). Ob a => (c :++: d) a a Source Comments #

(.) :: forall (b :: COPRODUCT j k) (c0 :: COPRODUCT j k) (a :: COPRODUCT j k). (c :++: d) b c0 -> (c :++: d) a b -> (c :++: d) a c0 Source Comments #

class IsCoproduct (a :: COPRODUCT j k) where Source Comments #

Methods

coproductId :: (((~>) :: CAT j) :++: ((~>) :: CAT k)) a a Source Comments #

Instances

Instances details
(Ob a, Promonad ((~>) :: CAT k)) => IsCoproduct ('R a :: COPRODUCT j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

coproductId :: (((~>) :: CAT j) :++: ((~>) :: CAT k)) ('R a :: COPRODUCT j k) ('R a :: COPRODUCT j k) Source Comments #

(Ob a, Promonad ((~>) :: CAT k2)) => IsCoproduct ('L a :: COPRODUCT k2 k1) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

coproductId :: (((~>) :: CAT k2) :++: ((~>) :: CAT k1)) ('L a :: COPRODUCT k2 k1) ('L a :: COPRODUCT k2 k1) Source Comments #