Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Object.BinaryCoproduct
Documentation
class CategoryOf k => HasBinaryCoproducts k where Source Comments #
Minimal complete definition
withObCoprod, lft, rgt, (|||)
Methods
withObCoprod :: forall (a :: k) (b :: k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments #
lft :: forall (a :: k) (b :: k). (Ob a, Ob b) => a ~> (a || b) Source Comments #
rgt :: forall (a :: k) (b :: k). (Ob a, Ob b) => b ~> (a || b) Source Comments #
(|||) :: forall (x :: k) (a :: k) (y :: k). (x ~> a) -> (y ~> a) -> (x || y) ~> a infixl 4 Source Comments #
(+++) :: forall (a :: k) (b :: k) (x :: k) (y :: k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) infixl 4 Source Comments #
Instances
HasBinaryCoproducts BOOL Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Bool Associated Types
Methods withObCoprod :: forall (a :: BOOL) (b :: BOOL) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: BOOL) (a :: BOOL) (y :: BOOL). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: BOOL) (b :: BOOL) (x :: BOOL) (y :: BOOL). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts KIND Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Cat Methods withObCoprod :: forall (a :: KIND) (b :: KIND) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: KIND) (a :: KIND) (y :: KIND). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: KIND) (b :: KIND) (x :: KIND) (y :: KIND). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts LINEAR Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Linear Methods withObCoprod :: forall (a :: LINEAR) (b :: LINEAR) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: LINEAR) (b :: LINEAR). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: LINEAR) (b :: LINEAR). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: LINEAR) (a :: LINEAR) (y :: LINEAR). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: LINEAR) (b :: LINEAR) (x :: LINEAR) (y :: LINEAR). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts POINTED Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.PointedHask Methods withObCoprod :: forall (a :: POINTED) (b :: POINTED) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: POINTED) (a :: POINTED) (y :: POINTED). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: POINTED) (b :: POINTED) (x :: POINTED) (y :: POINTED). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts () Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryCoproduct Associated Types
Methods withObCoprod :: forall (a :: ()) (b :: ()) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: ()) (a :: ()) (y :: ()). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: ()) (b :: ()) (x :: ()) (y :: ()). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts Type Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryCoproduct Associated Types
Methods withObCoprod :: (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall a b x y. (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts (FIN ('S n)) => HasBinaryCoproducts (FIN ('S ('S n))) Source Comments # | Maximum | ||||||||||||||||
Defined in Proarrow.Category.Instance.Fin Methods withObCoprod :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: FIN ('S ('S n))) (a :: FIN ('S ('S n))) (y :: FIN ('S ('S n))). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))) (x :: FIN ('S ('S n))) (y :: FIN ('S ('S n))). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts (FIN ('S 'Z)) Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Fin Methods withObCoprod :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: FIN ('S 'Z)) (a :: FIN ('S 'Z)) (y :: FIN ('S 'Z)). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) (x :: FIN ('S 'Z)) (y :: FIN ('S 'Z)). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts (FIN 'Z) Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Fin Methods withObCoprod :: forall (a :: FIN 'Z) (b :: FIN 'Z) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: FIN 'Z) (a :: FIN 'Z) (y :: FIN 'Z). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: FIN 'Z) (b :: FIN 'Z) (x :: FIN 'Z) (y :: FIN 'Z). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
Num a => HasBinaryCoproducts (MatK a) Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Mat Methods withObCoprod :: forall (a0 :: MatK a) (b :: MatK a) r. (Ob a0, Ob b) => (Ob (a0 || b) => r) -> r Source Comments # lft :: forall (a0 :: MatK a) (b :: MatK a). (Ob a0, Ob b) => a0 ~> (a0 || b) Source Comments # rgt :: forall (a0 :: MatK a) (b :: MatK a). (Ob a0, Ob b) => b ~> (a0 || b) Source Comments # (|||) :: forall (x :: MatK a) (a0 :: MatK a) (y :: MatK a). (x ~> a0) -> (y ~> a0) -> (x || y) ~> a0 Source Comments # (+++) :: forall (a0 :: MatK a) (b :: MatK a) (x :: MatK a) (y :: MatK a). (a0 ~> x) -> (b ~> y) -> (a0 || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryProducts k => HasBinaryCoproducts (OPPOSITE k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Opposite Methods withObCoprod :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: OPPOSITE k) (a :: OPPOSITE k) (y :: OPPOSITE k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (x :: OPPOSITE k) (y :: OPPOSITE k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
BiCCC k => HasBinaryCoproducts (FK k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Helper.CCC Methods withObCoprod :: forall (a :: FK k) (b :: FK k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: FK k) (b :: FK k). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: FK k) (b :: FK k). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: FK k) (a :: FK k) (y :: FK k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: FK k) (b :: FK k) (x :: FK k) (y :: FK k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts k => HasBinaryCoproducts (PROD k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryCoproduct Methods withObCoprod :: forall (a :: PROD k) (b :: PROD k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: PROD k) (b :: PROD k). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: PROD k) (b :: PROD k). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: PROD k) (a :: PROD k) (y :: PROD k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: PROD k) (b :: PROD k) (x :: PROD k) (y :: PROD k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
(HasBinaryCoproducts k, Promonad p, MonoidalProfunctor (Coprod p)) => HasBinaryCoproducts (KLEISLI p) Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Kleisli Methods withObCoprod :: forall (a :: KLEISLI p) (b :: KLEISLI p) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: KLEISLI p) (b :: KLEISLI p). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: KLEISLI p) (b :: KLEISLI p). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: KLEISLI p) (a :: KLEISLI p) (y :: KLEISLI p). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: KLEISLI p) (b :: KLEISLI p) (x :: KLEISLI p) (y :: KLEISLI p). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
(CategoryOf j, CategoryOf k) => HasBinaryCoproducts (PRO j k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryCoproduct Methods withObCoprod :: forall (a :: PRO j k) (b :: PRO j k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: PRO j k) (b :: PRO j k). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: PRO j k) (b :: PRO j k). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: PRO j k) (a :: PRO j k) (y :: PRO j k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: PRO j k) (b :: PRO j k) (x :: PRO j k) (y :: PRO j k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||||||||||||||
HasBinaryCoproducts (k1 -> Type) Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Nat Methods withObCoprod :: forall (a :: k1 -> Type) (b :: k1 -> Type) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: k1 -> Type) (a :: k1 -> Type) (y :: k1 -> Type). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: k1 -> Type) (b :: k1 -> Type) (x :: k1 -> Type) (y :: k1 -> Type). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # |
lft' :: forall {k} (a :: k) (a' :: k) (b :: k). HasBinaryCoproducts k => (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments #
rgt' :: forall {k} (a :: k) (b :: k) (b' :: k). HasBinaryCoproducts k => Obj a -> (b ~> b') -> b ~> (a || b') Source Comments #
left :: forall {k} (c :: k) (a :: k) (b :: k). (HasBinaryCoproducts k, Ob c) => (a ~> b) -> (a || c) ~> (b || c) Source Comments #
right :: forall {k} (c :: k) (a :: k) (b :: k). (HasBinaryCoproducts k, Ob c) => (a ~> b) -> (c || a) ~> (c || b) Source Comments #
swapCoprod' :: forall k (a :: k) (a' :: k) (b :: k) (b' :: k). HasBinaryCoproducts k => (a ~> a') -> (b ~> b') -> (a || b) ~> (b' || a') Source Comments #
swapCoprod :: forall k (a :: k) (b :: k). (HasBinaryCoproducts k, Ob a, Ob b) => (a || b) ~> (b || a) Source Comments #
type HasCoproducts k = (HasInitialObject k, HasBinaryCoproducts k) Source Comments #
class (a ** b) ~ (a || b) => TensorIsCoproduct (a :: k) (b :: k) Source Comments #
Instances
(a ** b) ~ (a || b) => TensorIsCoproduct (a :: k) (b :: k) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |
class (HasCoproducts k, Monoidal k, (Unit :: k) ~ (InitialObject :: k), forall (a :: k) (b :: k). TensorIsCoproduct a b) => Cocartesian k Source Comments #
Instances
(HasCoproducts k, Monoidal k, (Unit :: k) ~ (InitialObject :: k), forall (a :: k) (b :: k). TensorIsCoproduct a b) => Cocartesian k Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |
newtype COPROD k Source Comments #
Constructors
COPR k |
Instances
data Coprod (p :: j +-> k) (a :: COPROD k) (b :: COPROD j) where Source Comments #
Constructors
Coprod | |
Instances
Strong Type (Coprod (Id :: Type -> Type -> Type)) Source Comments # | |
Costrong (COPROD LINEAR) (Coprod (Id :: LINEAR -> LINEAR -> Type)) Source Comments # | |
Costrong (COPROD Type) (Coprod (Id :: Type -> Type -> Type)) Source Comments # | |
HasCoproducts k => Strong (COPROD k) (Coprod (Id :: k -> k -> Type) :: COPROD k -> COPROD k -> Type) Source Comments # | |
(Functor f, Distributive j, Distributive k) => MonoidalProfunctor (Coprod (Star f) :: COPROD k -> COPROD j -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Star | |
(HasCoproducts j, HasCoproducts k) => MonoidalProfunctor (Coprod (TerminalProfunctor :: k -> j -> Type) :: COPROD k -> COPROD j -> Type) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct Methods par0 :: Coprod (TerminalProfunctor :: k -> j -> Type) (Unit :: COPROD k) (Unit :: COPROD j) Source Comments # par :: forall (x1 :: COPROD k) (x2 :: COPROD j) (y1 :: COPROD k) (y2 :: COPROD j). Coprod (TerminalProfunctor :: k -> j -> Type) x1 x2 -> Coprod (TerminalProfunctor :: k -> j -> Type) y1 y2 -> Coprod (TerminalProfunctor :: k -> j -> Type) (x1 ** y1) (x2 ** y2) Source Comments # | |
(Profunctor f, Profunctor g, MonoidalProfunctor (Coprod f), MonoidalProfunctor (Coprod g)) => MonoidalProfunctor (Coprod (f :.: g) :: COPROD k -> COPROD j2 -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Composition | |
HasCoproducts k => MonoidalProfunctor (Coprod (Id :: k -> k -> Type) :: COPROD k -> COPROD k -> Type) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct Methods par0 :: Coprod (Id :: k -> k -> Type) (Unit :: COPROD k) (Unit :: COPROD k) Source Comments # par :: forall (x1 :: COPROD k) (x2 :: COPROD k) (y1 :: COPROD k) (y2 :: COPROD k). Coprod (Id :: k -> k -> Type) x1 x2 -> Coprod (Id :: k -> k -> Type) y1 y2 -> Coprod (Id :: k -> k -> Type) (x1 ** y1) (x2 ** y2) Source Comments # | |
Profunctor p => Profunctor (Coprod p :: COPROD k -> COPROD j -> Type) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct | |
Promonad p => Promonad (Coprod p :: COPROD j -> COPROD j -> Type) Source Comments # | |
copar0 :: MonoidalProfunctor (Coprod p) => p (InitialObject :: k) (InitialObject :: j) Source Comments #
copar :: forall {k1} {k2} p (a :: k2) (b :: k1) (c :: k2) (d :: k1). MonoidalProfunctor (Coprod p) => p a b -> p c d -> p (a || c) (b || d) Source Comments #
class Act ('COPR a) b ~ (a || b) => ActIsCoprod (a :: k) (b :: k) Source Comments #
Instances
Act ('COPR a) b ~ (a || b) => ActIsCoprod (a :: k) (b :: k) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |
class (HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b, MonoidalAction (COPROD k) k) => CoprodAction k Source Comments #
Instances
(HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b, MonoidalAction (COPROD k) k) => CoprodAction k Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |
class (Strong (COPROD k) p, CoprodAction k) => StrongCoprod (p :: CAT k) Source Comments #
Instances
(Strong (COPROD k) p, CoprodAction k) => StrongCoprod (p :: k +-> k) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |