Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class CategoryOf k => HasBinaryCoproducts k where Source Comments #
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
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 LINEAR Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Linear 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 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
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
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 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 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 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 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 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 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 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 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 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 #
COPR k |
Instances
data Coprod (p :: j +-> k) (a :: COPROD k) (b :: COPROD j) where Source Comments #
Instances
Strong (->) (Coprod (->)) Source Comments # | |
Strong (Coprod (->)) (Replacing a b :: Type -> Type -> Type) Source Comments # | |
Strong (Coprod (->)) (Setting a b :: Type -> Type -> Type) Source Comments # | |
Strong (Coprod (->)) (->) Source Comments # | |
Strong (Coprod (->)) (Previewing a b :: COPROD Type -> COPROD Type -> Type) Source Comments # | |
Strong (Coprod (->)) (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 | |
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 ((~>) :: CAT k) p, HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b) => StrongCoprod (p :: CAT k) Source Comments #
Instances
(Strong ((~>) :: CAT k) p, HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b) => StrongCoprod (p :: k +-> k) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct |