proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Profunctor.Instance.Cone

Synopsis
  • data Cone (a :: PROD k) (bs :: LIST k) where
    • Apex :: forall {k} (a1 :: k). Ob a1 => Cone ('PR a1) ('L ('[] :: [k]))
    • Leg :: forall {k} (a1 :: k) (b :: k) (bs1 :: [k]). (a1 ~> b) -> Cone ('PR a1) ('L bs1) -> Cone ('PR a1) ('L (b ': bs1))
  • data Cosink (as :: [k]) where

Documentation

data Cone (a :: PROD k) (bs :: LIST k) where Source Github #

A cone is a bunch of arrows with a shared source.

Constructors

Apex :: forall {k} (a1 :: k). Ob a1 => Cone ('PR a1) ('L ('[] :: [k])) 
Leg :: forall {k} (a1 :: k) (b :: k) (bs1 :: [k]). (a1 ~> b) -> Cone ('PR a1) ('L bs1) -> Cone ('PR a1) ('L (b ': bs1)) 

Instances

Instances details
HasProducts k => MonoidalProfunctor (Cone :: PROD k -> LIST k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Cone

Methods

one :: Cone (Unit :: PROD k) (Unit :: LIST k) Source Github #

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

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

Defined in Proarrow.Profunctor.Instance.Cone

Methods

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

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

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

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

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

A cosink (a.k.a a source) is a cone, but with the apex type hidden by an existential.

Constructors

Cone :: forall {k} (a :: k) (as :: [k]). Cone ('PR a) ('L as) -> Cosink as