proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Profunctor.Instance.Cocone

Synopsis

Documentation

data Cocone (bs :: LIST k) (a :: COPROD k) where Source Github #

A cocone is a bunch of arrows with a shared target.

Constructors

Coapex :: forall {k} (a1 :: k). Ob a1 => Cocone ('L ('[] :: [k])) ('COPR a1) 
Coleg :: forall {k} (b :: k) (a1 :: k) (bs1 :: [k]). (b ~> a1) -> Cocone ('L bs1) ('COPR a1) -> Cocone ('L (b ': bs1)) ('COPR a1) 

Instances

Instances details
HasCoproducts k => MonoidalProfunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Cocone

Methods

one :: Cocone (Unit :: LIST k) (Unit :: COPROD k) Source Github #

(**) :: forall (x1 :: LIST k) (x2 :: COPROD k) (y1 :: LIST k) (y2 :: COPROD k). Cocone x1 x2 -> Cocone y1 y2 -> Cocone (x1 ** y1) (x2 ** y2) Source Github #

CategoryOf k => Profunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Cocone

Methods

dimap :: forall (c :: LIST k) (a :: LIST k) (b :: COPROD k) (d :: COPROD k). (c ~> a) -> (b ~> d) -> Cocone a b -> Cocone c d Source Github #

lmap :: forall (c :: LIST k) (a :: LIST k) (b :: COPROD k). (c ~> a) -> Cocone a b -> Cocone c b Source Github #

rmap :: forall (b :: COPROD k) (d :: COPROD k) (a :: LIST k). (b ~> d) -> Cocone a b -> Cocone a d Source Github #

(\\) :: forall (a :: LIST k) (b :: COPROD k) r. ((Ob a, Ob b) => r) -> Cocone a b -> r Source Github #

data Sink (as :: [k]) where Source Github #

A sink is a cocone, but with the apex type hidden by an existential.

Constructors

Cocone :: forall {k} (as :: [k]) (a :: k). Cocone ('L as) ('COPR a) -> Sink as