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

Proarrow.Profunctor.Day

Documentation

data DayUnit (a :: k) (b :: k1) where Source Comments #

Constructors

DayUnit :: forall {k} {k1} (a :: k) (b :: k1). (a ~> (Unit :: k)) -> ((Unit :: k1) ~> b) -> DayUnit a b 

Instances

Instances details
(CategoryOf j, CategoryOf k) => Profunctor (DayUnit :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

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

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

data Day (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) (a :: k) (b :: k1) where Source Comments #

Constructors

Day :: forall {k} {k1} (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) (a :: k) (b :: k1) (c :: k) (d :: k1) (e :: k) (f :: k1). (a ~> (c ** e)) -> p c d -> q e f -> ((d ** f) ~> b) -> Day p q a b 

Instances

Instances details
(Profunctor p, Profunctor q) => Profunctor (Day p q :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

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

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

data DayExp (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) (a :: k) (b :: k1) where Source Comments #

Constructors

DayExp :: forall {k} {k1} (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) (a :: k) (b :: k1). (Ob a, Ob b) => (forall (c :: k) (d :: k1) (e :: k) (f :: k1). (e ~> (a ** c)) -> ((b ** d) ~> f) -> p c d -> q e f) -> DayExp p q a b 

Instances

Instances details
(Monoidal j, Monoidal k, Profunctor p, Profunctor q) => Profunctor (DayExp p q :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

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

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

Orphan instances

(Monoidal j, Monoidal k) => Monoidal (PRO j k) Source Comments # 
Instance details

Associated Types

type Unit 
Instance details

Defined in Proarrow.Profunctor.Day

type Unit = DayUnit :: j -> k -> Type

Methods

par :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k) (d :: PRO j k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments #

leftUnitor :: forall (a :: PRO j k). Obj a -> ((Unit :: PRO j k) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: PRO j k). Obj a -> a ~> ((Unit :: PRO j k) ** a) Source Comments #

rightUnitor :: forall (a :: PRO j k). Obj a -> (a ** (Unit :: PRO j k)) ~> a Source Comments #

rightUnitorInv :: forall (a :: PRO j k). Obj a -> a ~> (a ** (Unit :: PRO j k)) Source Comments #

associator :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

(SymMonoidal j, SymMonoidal k) => SymMonoidal (PRO j k) Source Comments # 
Instance details

Methods

swap' :: forall (a :: PRO j k) (b :: PRO j k). Obj a -> Obj b -> (a ** b) ~> (b ** a) Source Comments #

(Monoidal j, Monoidal k) => Closed (PRO j k) Source Comments # 
Instance details

Methods

curry' :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments #

uncurry' :: forall (b :: PRO j k) (c :: PRO j k) (a :: PRO j k). Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments #

(^^^) :: forall (b :: PRO j k) (y :: PRO j k) (x :: PRO j k) (a :: PRO j k). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments #

(Profunctor p, MonoidalProfunctor p) => Monoid (p :: PRO j k) Source Comments # 
Instance details

Methods

mempty :: (Unit :: PRO j k) ~> p Source Comments #

mappend :: (p ** p) ~> p Source Comments #