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

Proarrow.Category.Monoidal.Distributive

Documentation

class (Monoidal k, HasCoproducts k, DistributiveProfunctor ((~>) :: CAT k)) => Distributive k where Source Comments #

Methods

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

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

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

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

Instances

Instances details
Distributive BOOL Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

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

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

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

distR0 :: forall (a :: BOOL). Ob a => ((InitialObject :: BOOL) ** a) ~> (InitialObject :: BOOL) Source Comments #

Distributive () Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

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

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

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

distR0 :: forall (a :: ()). Ob a => ((InitialObject :: ()) ** a) ~> (InitialObject :: ()) Source Comments #

Distributive Type Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

distL :: (Ob a, Ob b, Ob c) => (a ** (b || c)) ~> ((a ** b) || (a ** c)) Source Comments #

distR :: (Ob a, Ob b, Ob c) => ((a || b) ** c) ~> ((a ** c) || (b ** c)) Source Comments #

distL0 :: Ob a => (a ** (InitialObject :: Type)) ~> (InitialObject :: Type) Source Comments #

distR0 :: Ob a => ((InitialObject :: Type) ** a) ~> (InitialObject :: Type) Source Comments #

BiCCC k => Distributive (PROD k) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

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

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

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

distR0 :: forall (a :: PROD k). Ob a => ((InitialObject :: PROD k) ** a) ~> (InitialObject :: PROD k) Source Comments #

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

Defined in Proarrow.Profunctor.Day

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 #

class Profunctor t => Traversable (t :: PRO j j) where Source Comments #

Methods

traverse :: forall (p :: j +-> j). DistributiveProfunctor p => (t :.: p) :~> (p :.: t) Source Comments #

Instances

Instances details
CategoryOf k => Traversable (Id :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

traverse :: forall (p :: k +-> k). DistributiveProfunctor p => ((Id :: k -> k -> Type) :.: p) :~> (p :.: (Id :: k -> k -> Type)) Source Comments #

Traversable (->) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

traverse :: forall (p :: Type +-> Type). DistributiveProfunctor p => ((->) :.: p) :~> (p :.: (->)) Source Comments #

Traversable p => Traversable (Fix p :: j -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fix

Methods

traverse :: forall (p0 :: j +-> j). DistributiveProfunctor p0 => (Fix p :.: p0) :~> (p0 :.: Fix p) Source Comments #

Traversable (Star Maybe) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Traversable (Star []) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

traverse :: forall (p :: Type +-> Type). DistributiveProfunctor p => (Star [] :.: p) :~> (p :.: Star []) Source Comments #

(Traversable p, Traversable q) => Traversable (p :+: q :: j -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

traverse :: forall (p0 :: j +-> j). DistributiveProfunctor p0 => ((p :+: q) :.: p0) :~> (p0 :.: (p :+: q)) Source Comments #

(Cartesian k, Traversable p, Traversable q) => Traversable (p :*: q :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

traverse :: forall (p0 :: k +-> k). DistributiveProfunctor p0 => ((p :*: q) :.: p0) :~> (p0 :.: (p :*: q)) Source Comments #

(Traversable p, Traversable q) => Traversable (p :.: q :: j -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Distributive

Methods

traverse :: forall (p0 :: j +-> j). DistributiveProfunctor p0 => ((p :.: q) :.: p0) :~> (p0 :.: (p :.: q)) Source Comments #