Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Object.BinaryCoproduct
Documentation
class CategoryOf k => HasBinaryCoproducts k where Source Comments #
Minimal complete definition
Methods
lft :: forall (a :: k) (b :: k). (Ob a, Ob b) => a ~> (a || b) Source Comments #
lft' :: forall (a :: k) (a' :: k) (b :: k). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments #
rgt :: forall (a :: k) (b :: k). (Ob a, Ob b) => b ~> (a || b) Source Comments #
rgt' :: forall (a :: k) (b :: k) (b' :: k). Obj a -> (b ~> 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 lft :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: BOOL) (a' :: BOOL) (b :: BOOL). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: BOOL) (b :: BOOL) (b' :: BOOL). Obj a -> (b ~> 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 lft :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: KIND) (a' :: KIND) (b :: KIND). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: KIND) (b :: KIND) (b' :: KIND). Obj a -> (b ~> 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 lft :: forall (a :: LINEAR) (b :: LINEAR). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: LINEAR) (a' :: LINEAR) (b :: LINEAR). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: LINEAR) (b :: LINEAR). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: LINEAR) (b :: LINEAR) (b' :: LINEAR). Obj a -> (b ~> 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 lft :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: POINTED) (a' :: POINTED) (b :: POINTED). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: POINTED) (b :: POINTED) (b' :: POINTED). Obj a -> (b ~> 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 lft :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: ()) (a' :: ()) (b :: ()). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: ()) (b :: ()) (b' :: ()). Obj a -> (b ~> 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 lft :: (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: Obj a -> (b ~> 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 lft :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: FIN ('S ('S n))) (a' :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (a ~> a') -> Obj 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 # rgt' :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))) (b' :: FIN ('S ('S n))). Obj a -> (b ~> 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 lft :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: FIN ('S 'Z)) (a' :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (a ~> a') -> Obj 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 # rgt' :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) (b' :: FIN ('S 'Z)). Obj a -> (b ~> 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 lft :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: FIN 'Z) (a' :: FIN 'Z) (b :: FIN 'Z). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: FIN 'Z) (b :: FIN 'Z) (b' :: FIN 'Z). Obj a -> (b ~> 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 lft :: forall (a0 :: MatK a) (b :: MatK a). (Ob a0, Ob b) => a0 ~> (a0 || b) Source Comments # lft' :: forall (a0 :: MatK a) (a' :: MatK a) (b :: MatK a). (a0 ~> a') -> Obj b -> a0 ~> (a' || b) Source Comments # rgt :: forall (a0 :: MatK a) (b :: MatK a). (Ob a0, Ob b) => b ~> (a0 || b) Source Comments # rgt' :: forall (a0 :: MatK a) (b :: MatK a) (b' :: MatK a). Obj a0 -> (b ~> 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 lft :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: OPPOSITE k) (a' :: OPPOSITE k) (b :: OPPOSITE k). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (b' :: OPPOSITE k). Obj a -> (b ~> 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 lft :: forall (a :: FK k) (b :: FK k). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: FK k) (a' :: FK k) (b :: FK k). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: FK k) (b :: FK k). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: FK k) (b :: FK k) (b' :: FK k). Obj a -> (b ~> 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 lft :: forall (a :: PROD k) (b :: PROD k). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: PROD k) (a' :: PROD k) (b :: PROD k). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: PROD k) (b :: PROD k). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: PROD k) (b :: PROD k) (b' :: PROD k). Obj a -> (b ~> 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 # | |||||||||||||||||
(CategoryOf j, CategoryOf k) => HasBinaryCoproducts (PRO j k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryCoproduct Methods lft :: forall (a :: PRO j k) (b :: PRO j k). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: PRO j k) (a' :: PRO j k) (b :: PRO j k). (a ~> a') -> Obj 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 # rgt' :: forall (a :: PRO j k) (b :: PRO j k) (b' :: PRO j k). Obj a -> (b ~> 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 lft :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => a ~> (a || b) Source Comments # lft' :: forall (a :: k1 -> Type) (a' :: k1 -> Type) (b :: k1 -> Type). (a ~> a') -> Obj b -> a ~> (a' || b) Source Comments # rgt :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => b ~> (a || b) Source Comments # rgt' :: forall (a :: k1 -> Type) (b :: k1 -> Type) (b' :: k1 -> Type). Obj a -> (b ~> 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 # |
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 (->)) Source Comments # | |
Strong (COPROD Type) (Coprod (->)) Source Comments # | |
(HasCoproducts k, Category cat) => MonoidalProfunctor (Coprod cat :: COPROD k -> COPROD k -> Type) Source Comments # | |
Profunctor p => Profunctor (Coprod p :: COPROD k -> COPROD j -> Type) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct | |
TracedMonoidalProfunctor (Coprod (->)) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct Methods trace :: forall (u :: COPROD Type) (x :: COPROD Type) (y :: COPROD Type). (Ob x, Ob y, Ob u) => Coprod (->) (x ** u) (y ** u) -> Coprod (->) x y Source Comments # trace' :: forall (x :: COPROD Type) (x' :: COPROD Type) (y :: COPROD Type) (y' :: COPROD Type) (u :: COPROD Type) (u' :: COPROD Type). (x ~> x') -> (y ~> y') -> (u ~> u') -> Coprod (->) (x' ** u') (y ** u) -> Coprod (->) x y' Source Comments # | |
Promonad p => Promonad (Coprod p :: COPROD j -> COPROD j -> Type) Source Comments # | |
class Act a b ~ (a || b) => ActIsCoprod (a :: k) (b :: k) Source Comments #
Instances
Act a b ~ (a || b) => ActIsCoprod (a :: k) (b :: k) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |
class (Strong k p, HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b) => StrongCoprod (p :: CAT k) Source Comments #
Instances
(Strong k p, HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b) => StrongCoprod (p :: k +-> k) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |