Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class (MonoidalProfunctor p, MonoidalProfunctor (Coprod p)) => DistributiveProfunctor (p :: j +-> k) Source Comments #
Instances
(MonoidalProfunctor p, MonoidalProfunctor (Coprod p)) => DistributiveProfunctor (p :: j +-> k) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Distributive |
copar0 :: DistributiveProfunctor p => p (InitialObject :: k) (InitialObject :: j) Source Comments #
copar :: forall {k1} {k2} p (a :: k2) (b :: k1) (c :: k2) (d :: k1). DistributiveProfunctor p => p a b -> p c d -> p (a || c) (b || d) Source Comments #
class (Monoidal k, HasCoproducts k, DistributiveProfunctor ((~>) :: CAT k)) => Distributive k where Source Comments #
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
Distributive BOOL Source Comments # | |
Defined in Proarrow.Category.Instance.Bool 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 # | |
Defined in Proarrow.Category.Monoidal.Distributive 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 # | |
Defined in Proarrow.Category.Monoidal.Distributive 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 # | |
Defined in Proarrow.Category.Monoidal.Distributive 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 # | |
Defined in Proarrow.Profunctor.Day 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 # |
travList :: DistributiveProfunctor p => p a b -> p [a] [b] Source Comments #