proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Object.BinaryCoproduct

Documentation

class CategoryOf k => HasBinaryCoproducts k where Source Github #

Minimal complete definition

withObCoprod, lft, rgt, (|||)

Associated Types

type (a :: k) || (b :: k) :: k infixl 4 Source Github #

Methods

withObCoprod :: forall (a :: k) (b :: k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: k) (b :: k). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: k) (b :: k). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: k) (a :: k) (y :: k). (x ~> a) -> (y ~> a) -> (x || y) ~> a infixl 4 Source Github #

(+++) :: forall (a :: k) (b :: k) (x :: k) (y :: k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) infixl 4 Source Github #

Instances

Instances details
HasBinaryCoproducts BOOL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type 'TRU || (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'TRU || (b :: BOOL) = 'TRU
type 'FLS || (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type 'FLS || (b :: BOOL) = b
type (a :: BOOL) || 'TRU 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) || 'TRU = 'TRU
type (a :: BOOL) || 'FLS 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (a :: BOOL) || 'FLS = a

Methods

withObCoprod :: forall (a :: BOOL) (b :: BOOL) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: BOOL) (a :: BOOL) (y :: BOOL). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: BOOL) (b :: BOOL) (x :: BOOL) (y :: BOOL). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts KIND Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type ('K l :: KIND) || ('K r :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type ('K l :: KIND) || ('K r :: KIND) = 'K (l, r)

Methods

withObCoprod :: forall (a :: KIND) (b :: KIND) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: KIND) (a :: KIND) (y :: KIND). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: KIND) (b :: KIND) (x :: KIND) (y :: KIND). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts COST Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cost

Associated Types

type ('C a :: COST) || ('C b :: COST) 
Instance details

Defined in Proarrow.Category.Instance.Cost

type ('C a :: COST) || ('C b :: COST) = 'C (Min a b)
type 'INF || (b :: COST) 
Instance details

Defined in Proarrow.Category.Instance.Cost

type 'INF || (b :: COST) = b
type (a :: COST) || 'INF 
Instance details

Defined in Proarrow.Category.Instance.Cost

type (a :: COST) || 'INF = a

Methods

withObCoprod :: forall (a :: COST) (b :: COST) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: COST) (b :: COST). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: COST) (b :: COST). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: COST) (a :: COST) (y :: COST). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: COST) (b :: COST) (x :: COST) (y :: COST). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts FINREL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Associated Types

type ('FR a :: FINREL) || ('FR b :: FINREL) 
Instance details

Defined in Proarrow.Category.Instance.FinRel

type ('FR a :: FINREL) || ('FR b :: FINREL) = 'FR (Plus a b)

Methods

withObCoprod :: forall (a :: FINREL) (b :: FINREL) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: FINREL) (b :: FINREL). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FINREL) (b :: FINREL). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FINREL) (a :: FINREL) (y :: FINREL). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: FINREL) (b :: FINREL) (x :: FINREL) (y :: FINREL). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type ('FS a :: FINSET) || ('FS b :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type ('FS a :: FINSET) || ('FS b :: FINSET) = 'FS (Plus a b)

Methods

withObCoprod :: forall (a :: FINSET) (b :: FINSET) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FINSET) (b :: FINSET). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FINSET) (a :: FINSET) (y :: FINSET). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: FINSET) (b :: FINSET) (x :: FINSET) (y :: FINSET). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts LINEAR Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type ('L a :: LINEAR) || ('L b :: LINEAR) 
Instance details

Defined in Proarrow.Category.Instance.Linear

type ('L a :: LINEAR) || ('L b :: LINEAR) = 'L (Either a b)

Methods

withObCoprod :: forall (a :: LINEAR) (b :: LINEAR) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: LINEAR) (b :: LINEAR). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: LINEAR) (b :: LINEAR). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: LINEAR) (a :: LINEAR) (y :: LINEAR). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: LINEAR) (b :: LINEAR) (x :: LINEAR) (y :: LINEAR). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts POINTED Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type ('P a :: POINTED) || ('P b :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type ('P a :: POINTED) || ('P b :: POINTED) = 'P (a || b)

Methods

withObCoprod :: forall (a :: POINTED) (b :: POINTED) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: POINTED) (b :: POINTED). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: POINTED) (a :: POINTED) (y :: POINTED). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: POINTED) (b :: POINTED) (x :: POINTED) (y :: POINTED). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts () Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type '() || '() 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type '() || '() = '()

Methods

withObCoprod :: forall (a :: ()) (b :: ()) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: ()) (a :: ()) (y :: ()). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: ()) (b :: ()) (x :: ()) (y :: ()). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts Type Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type (a :: Type) || (b :: Type) 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (a :: Type) || (b :: Type) = Either a b

Methods

withObCoprod :: (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall a b x y. (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

CategoryOf k => HasBinaryCoproducts (FAM k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

withObCoprod :: forall (a :: FAM k) (b :: FAM k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: FAM k) (b :: FAM k). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FAM k) (b :: FAM k). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FAM k) (a :: FAM k) (y :: FAM k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: FAM k) (b :: FAM k) (x :: FAM k) (y :: FAM k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts (FIN ('S n)) => HasBinaryCoproducts (FIN ('S ('S n))) Source Github #

Maximum

Instance details

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 Github #

lft :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FIN ('S ('S n))) (a :: FIN ('S ('S n))) (y :: FIN ('S ('S n))). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: 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 Github #

HasBinaryCoproducts (FIN ('S 'Z)) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Associated Types

type ('FZ :: FIN ('S 'Z)) || ('FZ :: FIN ('S 'Z)) 
Instance details

Defined in Proarrow.Category.Instance.Fin

type ('FZ :: FIN ('S 'Z)) || ('FZ :: FIN ('S 'Z)) = 'FZ :: FIN ('S 'Z)

Methods

withObCoprod :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FIN ('S 'Z)) (a :: FIN ('S 'Z)) (y :: FIN ('S 'Z)). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: 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 Github #

HasBinaryCoproducts (FIN 'Z) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Associated Types

type (a :: FIN 'Z) || (b :: FIN 'Z) 
Instance details

Defined in Proarrow.Category.Instance.Fin

type (a :: FIN 'Z) || (b :: FIN 'Z) = a

Methods

withObCoprod :: forall (a :: FIN 'Z) (b :: FIN 'Z) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FIN 'Z) (a :: FIN 'Z) (y :: FIN 'Z). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: FIN 'Z) (b :: FIN 'Z) (x :: FIN 'Z) (y :: FIN 'Z). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

Num a => HasBinaryCoproducts (MatK a) Source Github # 
Instance details

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 Github #

lft :: forall (a0 :: MatK a) (b :: MatK a). (Ob a0, Ob b) => a0 ~> (a0 || b) Source Github #

rgt :: forall (a0 :: MatK a) (b :: MatK a). (Ob a0, Ob b) => b ~> (a0 || b) Source Github #

(|||) :: forall (x :: MatK a) (a0 :: MatK a) (y :: MatK a). (x ~> a0) -> (y ~> a0) -> (x || y) ~> a0 Source Github #

(+++) :: forall (a0 :: MatK a) (b :: MatK a) (x :: MatK a) (y :: MatK a). (a0 ~> x) -> (b ~> y) -> (a0 || b) ~> (x || y) Source Github #

HasBinaryProducts k => HasBinaryCoproducts (OPPOSITE k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

withObCoprod :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: OPPOSITE k) (a :: OPPOSITE k) (y :: OPPOSITE k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (x :: OPPOSITE k) (y :: OPPOSITE k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts k => HasBinaryCoproducts (PROD k) Source Github # 
Instance details

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 Github #

lft :: forall (a :: PROD k) (b :: PROD k). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: PROD k) (b :: PROD k). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: PROD k) (a :: PROD k) (y :: PROD k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: PROD k) (b :: PROD k) (x :: PROD k) (y :: PROD k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

(Applicative f, HasBinaryCoproducts k) => HasBinaryCoproducts (AP f k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

withObCoprod :: forall (a :: AP f k) (b :: AP f k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: AP f k) (b :: AP f k). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: AP f k) (b :: AP f k). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: AP f k) (a :: AP f k) (y :: AP f k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: AP f k) (b :: AP f k) (x :: AP f k) (y :: AP f k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

(HasBinaryCoproducts k, Promonad p, MonoidalProfunctor (Coprod p)) => HasBinaryCoproducts (KLEISLI p) Source Github # 
Instance details

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 Github #

lft :: forall (a :: KLEISLI p) (b :: KLEISLI p). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: KLEISLI p) (b :: KLEISLI p). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: KLEISLI p) (a :: KLEISLI p) (y :: KLEISLI p). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: KLEISLI p) (b :: KLEISLI p) (x :: KLEISLI p) (y :: KLEISLI p). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

(CategoryOf j, CategoryOf k) => HasBinaryCoproducts (j +-> k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

withObCoprod :: forall (a :: j +-> k) (b :: j +-> k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: j +-> k) (b :: j +-> k). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: j +-> k) (b :: j +-> k). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: j +-> k) (a :: j +-> k) (y :: j +-> k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: j +-> k) (b :: j +-> k) (x :: j +-> k) (y :: j +-> k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

Monoid m => HasBinaryCoproducts (MONOIDK m) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

withObCoprod :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: MONOIDK m) (a :: MONOIDK m) (y :: MONOIDK m). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: MONOIDK m) (b :: MONOIDK m) (x :: MONOIDK m) (y :: MONOIDK m). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

HasBinaryCoproducts (k1 -> Type) Source Github # 
Instance details

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 Github #

lft :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: k1 -> Type) (b :: k1 -> Type). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: k1 -> Type) (a :: k1 -> Type) (y :: k1 -> Type). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: k1 -> Type) (b :: k1 -> Type) (x :: k1 -> Type) (y :: k1 -> Type). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

(Ok cs p, Elem HasBinaryCoproducts cs) => HasBinaryCoproducts (FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

withObCoprod :: forall (a :: FREE cs p) (b :: FREE cs p) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Github #

lft :: forall (a :: FREE cs p) (b :: FREE cs p). (Ob a, Ob b) => a ~> (a || b) Source Github #

rgt :: forall (a :: FREE cs p) (b :: FREE cs p). (Ob a, Ob b) => b ~> (a || b) Source Github #

(|||) :: forall (x :: FREE cs p) (a :: FREE cs p) (y :: FREE cs p). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Github #

(+++) :: forall (a :: FREE cs p) (b :: FREE cs p) (x :: FREE cs p) (y :: FREE cs p). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Github #

lft' :: forall {k} (a :: k) (a' :: k) (b :: k). HasBinaryCoproducts k => (a ~> a') -> Obj b -> a ~> (a' || b) Source Github #

rgt' :: forall {k} (a :: k) (b :: k) (b' :: k). HasBinaryCoproducts k => Obj a -> (b ~> b') -> b ~> (a || b') Source Github #

left :: forall {k} (c :: k) (a :: k) (b :: k). (HasBinaryCoproducts k, Ob c) => (a ~> b) -> (a || c) ~> (b || c) Source Github #

right :: forall {k} (c :: k) (a :: k) (b :: k). (HasBinaryCoproducts k, Ob c) => (a ~> b) -> (c || a) ~> (c || b) Source Github #

codiag :: forall {k} (a :: k). (HasBinaryCoproducts k, Ob a) => (a || a) ~> a Source Github #

swapCoprod' :: forall {k} (a :: k) (a' :: k) (b :: k) (b' :: k). HasBinaryCoproducts k => (a ~> a') -> (b ~> b') -> (a || b) ~> (b' || a') Source Github #

swapCoprod :: forall {k} (a :: k) (b :: k). (HasBinaryCoproducts k, Ob a, Ob b) => (a || b) ~> (b || a) Source Github #

class (a ** b) ~ (a || b) => TensorIsCoproduct (a :: k) (b :: k) Source Github #

Instances

Instances details
(a ** b) ~ (a || b) => TensorIsCoproduct (a :: k) (b :: k) Source Github # 
Instance details

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 Github #

Instances

Instances details
(HasCoproducts k, Monoidal k, (Unit :: k) ~ (InitialObject :: k), forall (a :: k) (b :: k). TensorIsCoproduct a b) => Cocartesian k Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

newtype COPROD k Source Github #

Constructors

COPR k 

Instances

Instances details
Costrong (COPROD LINEAR) Linear Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

coact :: forall (a :: COPROD LINEAR) (x :: LINEAR) (y :: LINEAR). (Ob a, Ob x, Ob y) => Linear (Act a x) (Act a y) -> Linear x y Source Github #

Strong (COPROD LINEAR) Linear Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

act :: forall (a :: COPROD LINEAR) (b :: COPROD LINEAR) (x :: LINEAR) (y :: LINEAR). (a ~> b) -> Linear x y -> Linear (Act a x) (Act b y) Source Github #

Costrong (COPROD Type) (Id :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

coact :: forall (a :: COPROD Type) x y. (Ob a, Ob x, Ob y) => Id (Act a x) (Act a y) -> Id x y Source Github #

MonadPlus m => Strong (COPROD Type) (Kleisli m :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

act :: forall (a :: COPROD Type) (b :: COPROD Type) x y. (a ~> b) -> Kleisli m x y -> Kleisli m (Act a x) (Act b y) Source Github #

(CoprodAction k, BiCCC k) => Strong (COPROD k) (Fold :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

act :: forall (a :: COPROD k) (b :: COPROD k) (x :: k) (y :: k). (a ~> b) -> Fold x y -> Fold (Act a x) (Act b y) Source Github #

Strong (COPROD Type) (Previewing a b :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: COPROD Type) (b0 :: COPROD Type) x y. (a0 ~> b0) -> Previewing a b x y -> Previewing a b (Act a0 x) (Act b0 y) Source Github #

Strong (COPROD Type) (Replacing a b :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: COPROD Type) (b0 :: COPROD Type) x y. (a0 ~> b0) -> Replacing a b x y -> Replacing a b (Act a0 x) (Act b0 y) Source Github #

Strong (COPROD Type) (->) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

act :: forall (a :: COPROD Type) (b :: COPROD Type) x y. (a ~> b) -> (x -> y) -> Act a x -> Act b y Source Github #

Strong (COPROD Type) (Rep (Constant (First c)) :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a :: COPROD Type) (b :: COPROD Type) x y. (a ~> b) -> Rep (Constant (First c)) x y -> Rep (Constant (First c)) (Act a x) (Act b y) Source Github #

MonoidalAction Type (COPROD Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type Act (p :: Type) ('COPR x :: COPROD Type) 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Act (p :: Type) ('COPR x :: COPROD Type) = 'COPR (p ** x)

Methods

withObAct :: forall a (x :: COPROD Type) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Github #

unitor :: forall (x :: COPROD Type). Ob x => Act (Unit :: Type) x ~> x Source Github #

unitorInv :: forall (x :: COPROD Type). Ob x => x ~> Act (Unit :: Type) x Source Github #

multiplicator :: forall a b (x :: COPROD Type). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Github #

multiplicatorInv :: forall a b (x :: COPROD Type). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Github #

CategoryOf k => Functor ('COPR :: k -> COPROD k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

map :: forall (a :: k) (b :: k). (a ~> b) -> 'COPR a ~> 'COPR b Source Github #

HasCoproducts k => Monoidal (COPROD k) Source Github #

Coproducts as monoidal tensor.

Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type Unit 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Unit = 'COPR (InitialObject :: k)

Methods

withOb2 :: forall (a :: COPROD k) (b :: COPROD k) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github #

leftUnitor :: forall (a :: COPROD k). Ob a => ((Unit :: COPROD k) ** a) ~> a Source Github #

leftUnitorInv :: forall (a :: COPROD k). Ob a => a ~> ((Unit :: COPROD k) ** a) Source Github #

rightUnitor :: forall (a :: COPROD k). Ob a => (a ** (Unit :: COPROD k)) ~> a Source Github #

rightUnitorInv :: forall (a :: COPROD k). Ob a => a ~> (a ** (Unit :: COPROD k)) Source Github #

associator :: forall (a :: COPROD k) (b :: COPROD k) (c :: COPROD k). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Github #

associatorInv :: forall (a :: COPROD k) (b :: COPROD k) (c :: COPROD k). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Github #

HasCoproducts k => SymMonoidal (COPROD k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

swap :: forall (a :: COPROD k) (b :: COPROD k). (Ob a, Ob b) => (a ** b) ~> (b ** a) Source Github #

CategoryOf k => CategoryOf (COPROD k) Source Github #

The same category as the category of k, but with coproducts as the tensor.

Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (~>) = Coprod (Id :: k -> k -> Type)
HasInitialObject k => HasInitialObject (COPROD k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

initiate :: forall (a :: COPROD k). Ob a => (InitialObject :: COPROD k) ~> a Source Github #

(HasCoproducts k, Strong (COPROD k) ((~>) :: CAT k)) => MonoidalAction (COPROD k) k Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

withObAct :: forall (a :: COPROD k) (x :: k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Github #

unitor :: forall (x :: k). Ob x => Act (Unit :: COPROD k) x ~> x Source Github #

unitorInv :: forall (x :: k). Ob x => x ~> Act (Unit :: COPROD k) x Source Github #

multiplicator :: forall (a :: COPROD k) (b :: COPROD k) (x :: k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Github #

multiplicatorInv :: forall (a :: COPROD k) (b :: COPROD k) (x :: k). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Github #

(Alternative f, Monoidal k, Distributive j) => MonoidalProfunctor (CoprodDom (Star f) :: k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

par0 :: CoprodDom (Star f) (Unit :: k) (Unit :: COPROD j) Source Github #

par :: forall (x1 :: k) (x2 :: COPROD j) (y1 :: k) (y2 :: COPROD j). CoprodDom (Star f) x1 x2 -> CoprodDom (Star f) y1 y2 -> CoprodDom (Star f) (x1 ** y1) (x2 ** y2) Source Github #

Profunctor p => Profunctor (CoprodDom p :: k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

dimap :: forall (c :: k) (a :: k) (b :: COPROD j) (d :: COPROD j). (c ~> a) -> (b ~> d) -> CoprodDom p a b -> CoprodDom p c d Source Github #

(\\) :: forall (a :: k) (b :: COPROD j) r. ((Ob a, Ob b) => r) -> CoprodDom p a b -> r Source Github #

Strong Type (Coprod (Id :: Type -> Type -> Type)) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

act :: forall a b (x :: COPROD Type) (y :: COPROD Type). (a ~> b) -> Coprod (Id :: Type -> Type -> Type) x y -> Coprod (Id :: Type -> Type -> Type) (Act a x) (Act b y) Source Github #

HasCoproducts k => MonoidalProfunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Pushout

Methods

par0 :: Cocone (Unit :: LIST k) (Unit :: COPROD k) Source Github #

par :: forall (x1 :: LIST k) (x2 :: COPROD k) (y1 :: LIST k) (y2 :: COPROD k). Cocone x1 x2 -> Cocone y1 y2 -> Cocone (x1 ** y1) (x2 ** y2) Source Github #

CategoryOf k => Profunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Pushout

Methods

dimap :: forall (c :: LIST k) (a :: LIST k) (b :: COPROD k) (d :: COPROD k). (c ~> a) -> (b ~> d) -> Cocone a b -> Cocone c d Source Github #

(\\) :: forall (a :: LIST k) (b :: COPROD k) r. ((Ob a, Ob b) => r) -> Cocone a b -> r Source Github #

MonoidalProfunctor (Coprod (Rep Fun)) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

par0 :: Coprod (Rep Fun) (Unit :: COPROD FINREL) (Unit :: COPROD FINSET) Source Github #

par :: forall (x1 :: COPROD FINREL) (x2 :: COPROD FINSET) (y1 :: COPROD FINREL) (y2 :: COPROD FINSET). Coprod (Rep Fun) x1 x2 -> Coprod (Rep Fun) y1 y2 -> Coprod (Rep Fun) (x1 ** y1) (x2 ** y2) Source Github #

MonoidalProfunctor (Coprod Linear) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

par0 :: Coprod Linear (Unit :: COPROD LINEAR) (Unit :: COPROD LINEAR) Source Github #

par :: forall (x1 :: COPROD LINEAR) (x2 :: COPROD LINEAR) (y1 :: COPROD LINEAR) (y2 :: COPROD LINEAR). Coprod Linear x1 x2 -> Coprod Linear y1 y2 -> Coprod Linear (x1 ** y1) (x2 ** y2) Source Github #

MonadPlus m => MonoidalProfunctor (Coprod (Kleisli m) :: COPROD Type -> COPROD Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

par0 :: Coprod (Kleisli m) (Unit :: COPROD Type) (Unit :: COPROD Type) Source Github #

par :: forall (x1 :: COPROD Type) (x2 :: COPROD Type) (y1 :: COPROD Type) (y2 :: COPROD Type). Coprod (Kleisli m) x1 x2 -> Coprod (Kleisli m) y1 y2 -> Coprod (Kleisli m) (x1 ** y1) (x2 ** y2) Source Github #

ArrowChoice arr => MonoidalProfunctor (Coprod (Arr arr) :: COPROD Type -> COPROD Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

par0 :: Coprod (Arr arr) (Unit :: COPROD Type) (Unit :: COPROD Type) Source Github #

par :: forall (x1 :: COPROD Type) (x2 :: COPROD Type) (y1 :: COPROD Type) (y2 :: COPROD Type). Coprod (Arr arr) x1 x2 -> Coprod (Arr arr) y1 y2 -> Coprod (Arr arr) (x1 ** y1) (x2 ** y2) Source Github #

(Cocartesian j, Cocartesian k, Adjunction p) => MonoidalProfunctor (Coprod (Adj p) :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Adjunction

Methods

par0 :: Coprod (Adj p) (Unit :: COPROD k) (Unit :: COPROD j) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD j) (y1 :: COPROD k) (y2 :: COPROD j). Coprod (Adj p) x1 x2 -> Coprod (Adj p) y1 y2 -> Coprod (Adj p) (x1 ** y1) (x2 ** y2) Source Github #

(Functor f, HasCoproducts j, HasCoproducts k) => MonoidalProfunctor (Coprod (Star f) :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

par0 :: Coprod (Star f) (Unit :: COPROD k) (Unit :: COPROD j) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD j) (y1 :: COPROD k) (y2 :: COPROD j). Coprod (Star f) x1 x2 -> Coprod (Star f) y1 y2 -> Coprod (Star f) (x1 ** y1) (x2 ** y2) Source Github #

(HasCoproducts j, HasCoproducts k) => MonoidalProfunctor (Coprod (TerminalProfunctor :: k -> j -> Type) :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

par0 :: Coprod (TerminalProfunctor :: k -> j -> Type) (Unit :: COPROD k) (Unit :: COPROD j) Source Github #

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 Github #

(Profunctor f, Profunctor g, MonoidalProfunctor (Coprod f), MonoidalProfunctor (Coprod g)) => MonoidalProfunctor (Coprod (f :.: g) :: COPROD k -> COPROD j2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Composition

Methods

par0 :: Coprod (f :.: g) (Unit :: COPROD k) (Unit :: COPROD j2) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD j2) (y1 :: COPROD k) (y2 :: COPROD j2). Coprod (f :.: g) x1 x2 -> Coprod (f :.: g) y1 y2 -> Coprod (f :.: g) (x1 ** y1) (x2 ** y2) Source Github #

HasCoproducts k => MonoidalProfunctor (Coprod (Id :: k -> k -> Type) :: COPROD k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

par0 :: Coprod (Id :: k -> k -> Type) (Unit :: COPROD k) (Unit :: COPROD k) Source Github #

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 Github #

(HasCoproducts k, Ob r) => MonoidalProfunctor (Coprod (Rep (Constant r)) :: COPROD k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

par0 :: Coprod (Rep (Constant r)) (Unit :: COPROD k) (Unit :: COPROD k) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD k) (y1 :: COPROD k) (y2 :: COPROD k). Coprod (Rep (Constant r)) x1 x2 -> Coprod (Rep (Constant r)) y1 y2 -> Coprod (Rep (Constant r)) (x1 ** y1) (x2 ** y2) Source Github #

HasCoproducts k => MonoidalProfunctor (Coprod (Cont r) :: COPROD k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

par0 :: Coprod (Cont r) (Unit :: COPROD k) (Unit :: COPROD k) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD k) (y1 :: COPROD k) (y2 :: COPROD k). Coprod (Cont r) x1 x2 -> Coprod (Cont r) y1 y2 -> Coprod (Cont r) (x1 ** y1) (x2 ** y2) Source Github #

Profunctor p => Profunctor (Coprod p :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

dimap :: forall (c :: COPROD k) (a :: COPROD k) (b :: COPROD j) (d :: COPROD j). (c ~> a) -> (b ~> d) -> Coprod p a b -> Coprod p c d Source Github #

(\\) :: forall (a :: COPROD k) (b :: COPROD j) r. ((Ob a, Ob b) => r) -> Coprod p a b -> r Source Github #

Representable p => Representable (Coprod p :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

index :: forall (a :: COPROD k) (b :: COPROD j). Coprod p a b -> a ~> (Coprod p % b) Source Github #

tabulate :: forall (b :: COPROD j) (a :: COPROD k). Ob b => (a ~> (Coprod p % b)) -> Coprod p a b Source Github #

repMap :: forall (a :: COPROD j) (b :: COPROD j). (a ~> b) -> (Coprod p % a) ~> (Coprod p % b) Source Github #

(HasCoproducts k, Ob a) => Monoid ('COPR a :: COPROD k) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

mempty :: (Unit :: COPROD k) ~> 'COPR a Source Github #

mappend :: ('COPR a ** 'COPR a) ~> 'COPR a Source Github #

Promonad p => Promonad (Coprod p :: COPROD j -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

id :: forall (a :: COPROD j). Ob a => Coprod p a a Source Github #

(.) :: forall (b :: COPROD j) (c :: COPROD j) (a :: COPROD j). Coprod p b c -> Coprod p a b -> Coprod p a c Source Github #

type Act (p :: Type) ('COPR x :: COPROD Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Act (p :: Type) ('COPR x :: COPROD Type) = 'COPR (p ** x)
type UN ('COPR :: j -> COPROD j) ('COPR k :: COPROD j) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type UN ('COPR :: j -> COPROD j) ('COPR k :: COPROD j) = k
type Unit Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Unit = 'COPR (InitialObject :: k)
type (~>) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (~>) = Coprod (Id :: k -> k -> Type)
type InitialObject Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Ob (a :: COPROD k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Ob (a :: COPROD k) = (Is ('COPR :: k -> COPROD k) a, Ob (UN ('COPR :: k -> COPROD k) a))
type (a :: COPROD k) ** (b :: COPROD k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (a :: COPROD k) ** (b :: COPROD k) = 'COPR (UN ('COPR :: k -> COPROD k) a || UN ('COPR :: k -> COPROD k) b)
type Act (a :: COPROD k) (b :: k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Act (a :: COPROD k) (b :: k) = UN ('COPR :: k -> COPROD k) a || b
type (Coprod p :: COPROD k -> COPROD j -> Type) % ('COPR a :: COPROD j) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (Coprod p :: COPROD k -> COPROD j -> Type) % ('COPR a :: COPROD j) = 'COPR (p % a)

data Coprod (p :: j +-> k) (a :: COPROD k) (b :: COPROD j) where Source Github #

Constructors

Coprod 

Fields

Instances

Instances details
Strong Type (Coprod (Id :: Type -> Type -> Type)) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

act :: forall a b (x :: COPROD Type) (y :: COPROD Type). (a ~> b) -> Coprod (Id :: Type -> Type -> Type) x y -> Coprod (Id :: Type -> Type -> Type) (Act a x) (Act b y) Source Github #

MonoidalProfunctor (Coprod (Rep Fun)) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

par0 :: Coprod (Rep Fun) (Unit :: COPROD FINREL) (Unit :: COPROD FINSET) Source Github #

par :: forall (x1 :: COPROD FINREL) (x2 :: COPROD FINSET) (y1 :: COPROD FINREL) (y2 :: COPROD FINSET). Coprod (Rep Fun) x1 x2 -> Coprod (Rep Fun) y1 y2 -> Coprod (Rep Fun) (x1 ** y1) (x2 ** y2) Source Github #

MonoidalProfunctor (Coprod Linear) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

par0 :: Coprod Linear (Unit :: COPROD LINEAR) (Unit :: COPROD LINEAR) Source Github #

par :: forall (x1 :: COPROD LINEAR) (x2 :: COPROD LINEAR) (y1 :: COPROD LINEAR) (y2 :: COPROD LINEAR). Coprod Linear x1 x2 -> Coprod Linear y1 y2 -> Coprod Linear (x1 ** y1) (x2 ** y2) Source Github #

MonadPlus m => MonoidalProfunctor (Coprod (Kleisli m) :: COPROD Type -> COPROD Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

par0 :: Coprod (Kleisli m) (Unit :: COPROD Type) (Unit :: COPROD Type) Source Github #

par :: forall (x1 :: COPROD Type) (x2 :: COPROD Type) (y1 :: COPROD Type) (y2 :: COPROD Type). Coprod (Kleisli m) x1 x2 -> Coprod (Kleisli m) y1 y2 -> Coprod (Kleisli m) (x1 ** y1) (x2 ** y2) Source Github #

ArrowChoice arr => MonoidalProfunctor (Coprod (Arr arr) :: COPROD Type -> COPROD Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

par0 :: Coprod (Arr arr) (Unit :: COPROD Type) (Unit :: COPROD Type) Source Github #

par :: forall (x1 :: COPROD Type) (x2 :: COPROD Type) (y1 :: COPROD Type) (y2 :: COPROD Type). Coprod (Arr arr) x1 x2 -> Coprod (Arr arr) y1 y2 -> Coprod (Arr arr) (x1 ** y1) (x2 ** y2) Source Github #

(Cocartesian j, Cocartesian k, Adjunction p) => MonoidalProfunctor (Coprod (Adj p) :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Adjunction

Methods

par0 :: Coprod (Adj p) (Unit :: COPROD k) (Unit :: COPROD j) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD j) (y1 :: COPROD k) (y2 :: COPROD j). Coprod (Adj p) x1 x2 -> Coprod (Adj p) y1 y2 -> Coprod (Adj p) (x1 ** y1) (x2 ** y2) Source Github #

(Functor f, HasCoproducts j, HasCoproducts k) => MonoidalProfunctor (Coprod (Star f) :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

par0 :: Coprod (Star f) (Unit :: COPROD k) (Unit :: COPROD j) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD j) (y1 :: COPROD k) (y2 :: COPROD j). Coprod (Star f) x1 x2 -> Coprod (Star f) y1 y2 -> Coprod (Star f) (x1 ** y1) (x2 ** y2) Source Github #

(HasCoproducts j, HasCoproducts k) => MonoidalProfunctor (Coprod (TerminalProfunctor :: k -> j -> Type) :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

par0 :: Coprod (TerminalProfunctor :: k -> j -> Type) (Unit :: COPROD k) (Unit :: COPROD j) Source Github #

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 Github #

(Profunctor f, Profunctor g, MonoidalProfunctor (Coprod f), MonoidalProfunctor (Coprod g)) => MonoidalProfunctor (Coprod (f :.: g) :: COPROD k -> COPROD j2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Composition

Methods

par0 :: Coprod (f :.: g) (Unit :: COPROD k) (Unit :: COPROD j2) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD j2) (y1 :: COPROD k) (y2 :: COPROD j2). Coprod (f :.: g) x1 x2 -> Coprod (f :.: g) y1 y2 -> Coprod (f :.: g) (x1 ** y1) (x2 ** y2) Source Github #

HasCoproducts k => MonoidalProfunctor (Coprod (Id :: k -> k -> Type) :: COPROD k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

par0 :: Coprod (Id :: k -> k -> Type) (Unit :: COPROD k) (Unit :: COPROD k) Source Github #

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 Github #

(HasCoproducts k, Ob r) => MonoidalProfunctor (Coprod (Rep (Constant r)) :: COPROD k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

par0 :: Coprod (Rep (Constant r)) (Unit :: COPROD k) (Unit :: COPROD k) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD k) (y1 :: COPROD k) (y2 :: COPROD k). Coprod (Rep (Constant r)) x1 x2 -> Coprod (Rep (Constant r)) y1 y2 -> Coprod (Rep (Constant r)) (x1 ** y1) (x2 ** y2) Source Github #

HasCoproducts k => MonoidalProfunctor (Coprod (Cont r) :: COPROD k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

par0 :: Coprod (Cont r) (Unit :: COPROD k) (Unit :: COPROD k) Source Github #

par :: forall (x1 :: COPROD k) (x2 :: COPROD k) (y1 :: COPROD k) (y2 :: COPROD k). Coprod (Cont r) x1 x2 -> Coprod (Cont r) y1 y2 -> Coprod (Cont r) (x1 ** y1) (x2 ** y2) Source Github #

Profunctor p => Profunctor (Coprod p :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

dimap :: forall (c :: COPROD k) (a :: COPROD k) (b :: COPROD j) (d :: COPROD j). (c ~> a) -> (b ~> d) -> Coprod p a b -> Coprod p c d Source Github #

(\\) :: forall (a :: COPROD k) (b :: COPROD j) r. ((Ob a, Ob b) => r) -> Coprod p a b -> r Source Github #

Representable p => Representable (Coprod p :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

index :: forall (a :: COPROD k) (b :: COPROD j). Coprod p a b -> a ~> (Coprod p % b) Source Github #

tabulate :: forall (b :: COPROD j) (a :: COPROD k). Ob b => (a ~> (Coprod p % b)) -> Coprod p a b Source Github #

repMap :: forall (a :: COPROD j) (b :: COPROD j). (a ~> b) -> (Coprod p % a) ~> (Coprod p % b) Source Github #

Promonad p => Promonad (Coprod p :: COPROD j -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

id :: forall (a :: COPROD j). Ob a => Coprod p a a Source Github #

(.) :: forall (b :: COPROD j) (c :: COPROD j) (a :: COPROD j). Coprod p b c -> Coprod p a b -> Coprod p a c Source Github #

type (Coprod p :: COPROD k -> COPROD j -> Type) % ('COPR a :: COPROD j) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (Coprod p :: COPROD k -> COPROD j -> Type) % ('COPR a :: COPROD j) = 'COPR (p % a)

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 Github #

leftUnitorCoprod :: forall {k} (a :: k). (HasCoproducts k, Ob a) => ((InitialObject :: k) || a) ~> a Source Github #

leftUnitorCoprodInv :: forall {k} (a :: k). (HasCoproducts k, Ob a) => a ~> ((InitialObject :: k) || a) Source Github #

rightUnitorCoprod :: forall {k} (a :: k). (HasCoproducts k, Ob a) => (a || (InitialObject :: k)) ~> a Source Github #

rightUnitorCoprodInv :: forall {k} (a :: k). (HasCoproducts k, Ob a) => a ~> (a || (InitialObject :: k)) Source Github #

associatorCoprod :: forall {k} (a :: k) (b :: k) (c :: k). (HasCoproducts k, Ob a, Ob b, Ob c) => ((a || b) || c) ~> (a || (b || c)) Source Github #

associatorCoprodInv :: forall {k} (a :: k) (b :: k) (c :: k). (HasCoproducts k, Ob a, Ob b, Ob c) => (a || (b || c)) ~> ((a || b) || c) Source Github #

class Act ('COPR a) b ~ (a || b) => ActIsCoprod (a :: k) (b :: k) Source Github #

Instances

Instances details
Act ('COPR a) b ~ (a || b) => ActIsCoprod (a :: k) (b :: k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

class (HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b, MonoidalAction (COPROD k) k) => CoprodAction k Source Github #

Instances

Instances details
(HasCoproducts k, forall (a :: k) (b :: k). ActIsCoprod a b, MonoidalAction (COPROD k) k) => CoprodAction k Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

class (Strong (COPROD k) p, CoprodAction k) => StrongCoprod (p :: CAT k) Source Github #

Instances

Instances details
(Strong (COPROD k) p, CoprodAction k) => StrongCoprod (p :: k +-> k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

left' :: forall {k} p (c :: k) (a :: k) (b :: k). (StrongCoprod p, Ob c) => p a b -> p (a || c) (b || c) Source Github #

right' :: forall {k} p (c :: k) (a :: k) (b :: k). (StrongCoprod p, Ob c) => p a b -> p (c || a) (c || b) Source Github #

data family (a :: k) + (b :: k) :: k Source Github #

Instances

Instances details
(Ob a, Ob b, Elem HasBinaryCoproducts cs) => IsFreeOb (a + b :: FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

withLowerOb :: forall {k} (f :: j +-> k) r. (Representable f, All cs k) => (Ob (Lower f (a + b)) => r) -> r Source Github #

type Lower (f :: j +-> k) (a + b :: FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Lower (f :: j +-> k) (a + b :: FREE cs p) = Lower f a || Lower f b

class (a && b) ~ (a || b) => CheckBiproduct (a :: k) (b :: k) Source Github #

Instances

Instances details
(a && b) ~ (a || b) => CheckBiproduct (a :: k) (b :: k) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

class (HasBinaryCoproducts k, HasBinaryProducts k, forall (a :: k) (b :: k). (Ob a, Ob b) => CheckBiproduct a b) => HasBiproducts k where Source Github #

Minimal complete definition

Nothing

Methods

sum :: forall (a :: k) (b :: k). (a ~> b) -> (a ~> b) -> a ~> b Source Github #

Instances

Instances details
HasBiproducts KIND Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

sum :: forall (a :: KIND) (b :: KIND). (a ~> b) -> (a ~> b) -> a ~> b Source Github #

HasBiproducts FINREL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

sum :: forall (a :: FINREL) (b :: FINREL). (a ~> b) -> (a ~> b) -> a ~> b Source Github #

Num a => HasBiproducts (MatK a) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Methods

sum :: forall (a0 :: MatK a) (b :: MatK a). (a0 ~> b) -> (a0 ~> b) -> a0 ~> b Source Github #

Orphan instances

(HasBinaryCoproducts j, Corepresentable p, Corepresentable q) => Corepresentable (p :*: q :: k -> j -> Type) Source Github # 
Instance details

Methods

coindex :: forall (a :: k) (b :: j). (p :*: q) a b -> ((p :*: q) %% a) ~> b Source Github #

cotabulate :: forall (a :: k) (b :: j). Ob a => (((p :*: q) %% a) ~> b) -> (p :*: q) a b Source Github #

corepMap :: forall (a :: k) (b :: k). (a ~> b) -> ((p :*: q) %% a) ~> ((p :*: q) %% b) Source Github #

HasBinaryCoproducts k => HasBinaryProducts (OPPOSITE k) Source Github # 
Instance details

Methods

withObProd :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Github #

fst :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => (a && b) ~> a Source Github #

snd :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). (Ob a, Ob b) => (a && b) ~> b Source Github #

(&&&) :: forall (a :: OPPOSITE k) (x :: OPPOSITE k) (y :: OPPOSITE k). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Github #

(***) :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (x :: OPPOSITE k) (y :: OPPOSITE k). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Github #