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} (c :: k) (d :: k1) (e :: k) (f :: k1) (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) (a :: k) (b :: k1). (a ~> (c ** e)) -> p c d -> q e f -> ((d ** f) ~> b) -> Day p q a b 

Instances

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

Defined in Proarrow.Profunctor.Day

Methods

par0 :: Day p q (Unit :: j) (Unit :: k) Source Comments #

par :: forall (x1 :: j) (x2 :: k) (y1 :: j) (y2 :: k). Day p q x1 x2 -> Day p q y1 y2 -> Day p q (x1 ** y1) (x2 ** y2) Source Comments #

(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 #

Functor (Day :: (k1 -> k2 -> Type) -> (k1 -> k2 -> Type) -> k1 -> k2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

map :: forall (a :: k1 -> k2 -> Type) (b :: k1 -> k2 -> Type). (a ~> b) -> Day a ~> Day b Source Comments #

Profunctor p => Functor (Day p :: (k1 -> k2 -> Type) -> k1 -> k2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

map :: forall (a :: k1 -> k2 -> Type) (b :: k1 -> k2 -> Type). (a ~> b) -> Day p a ~> Day p b Source Comments #

duoidal :: forall {i1} k i2 (p :: PRO i2 k) (p' :: PRO k i1) (q :: PRO i2 k) (q' :: PRO k i1). (Monoidal k, Profunctor p, Profunctor p', Profunctor q, Profunctor q') => Day (p :.: p') (q :.: q') ~> (Day p q :.: Day p' q') 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 #

multDayExp :: forall j k (p :: PRO j k) (q :: PRO j k) (p' :: PRO j k) (q' :: PRO j k). (SymMonoidal j, SymMonoidal k, Profunctor p, Profunctor q, Profunctor p', Profunctor q') => Day (p ~~> q) (p' ~~> q') ~> (Day p p' ~~> Day q q') 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

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

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

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

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

associator :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). (Ob a, Ob b, Ob 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) (a' :: PRO j k) (b :: PRO j k) (b' :: PRO j k). (a ~> a') -> (b ~> b') -> (a ** b) ~> (b' ** a') Source Comments #

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

Methods

distL :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). (Ob a, Ob b, Ob c) => (a ** (b || c)) ~> ((a ** b) || (a ** c)) Source Comments #

distR :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). (Ob a, Ob b, Ob c) => ((a || b) ** c) ~> ((a ** c) || (b ** c)) Source Comments #

distL0 :: forall (a :: PRO j k). Ob a => (a ** (InitialObject :: PRO j k)) ~> (InitialObject :: PRO j k) Source Comments #

distR0 :: forall (a :: PRO j k). Ob a => ((InitialObject :: PRO j k) ** a) ~> (InitialObject :: PRO j k) 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 k j) Source Comments # 
Instance details

Methods

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

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

(Monoidal j, Monoidal k) => MonoidalProfunctor (Prof :: (j +-> k) -> (j +-> k) -> Type) Source Comments # 
Instance details

Methods

par0 :: Prof (Unit :: j +-> k) (Unit :: j +-> k) Source Comments #

par :: forall (x1 :: j +-> k) (x2 :: j +-> k) (y1 :: j +-> k) (y2 :: j +-> k). Prof x1 x2 -> Prof y1 y2 -> Prof (x1 ** y1) (x2 ** y2) Source Comments #