| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Instance.Coproduct
Description
Documentation
data COPRODUCT j k Source Github #
Instances
| (CategoryOf k1, CategoryOf k2, CategoryOf j1, CategoryOf j2, Flavor w1, Flavor w2) => SumFl (w1 :: FLAVOR j1 k1) (w2 :: FLAVOR j2 k2) (Id :: COPRODUCT k1 k2 -> COPRODUCT k1 k2 -> Type) (Id :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Optic.Sum Methods withSumL :: forall (s :: k1) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) (t :: j1) r. Id ('L s :: COPRODUCT k1 k2) a -> Id b ('L t :: COPRODUCT j1 j2) -> (forall (p1 :: k1 +-> k1) (q1 :: j1 +-> j1) (a' :: k1) (b' :: j1). (w1 p1 q1, Profunctor p1, Profunctor q1, a ~ ('L a' :: COPRODUCT k1 k2), b ~ ('L b' :: COPRODUCT j1 j2)) => p1 s a' -> q1 b' t -> r) -> r Source Github # withSumR :: forall (s :: k2) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) (t :: j2) r. Id ('R s :: COPRODUCT k1 k2) a -> Id b ('R t :: COPRODUCT j1 j2) -> (forall (p2 :: k2 +-> k2) (q2 :: j2 +-> j2) (a' :: k2) (b' :: j2). (w2 p2 q2, Profunctor p2, Profunctor q2, a ~ ('R a' :: COPRODUCT k1 k2), b ~ ('R b' :: COPRODUCT j1 j2)) => p2 s a' -> q2 b' t -> r) -> r Source Github # | |
| (SumFl w1 w2 f f', SumFl w1 w2 g g', Flavor w1, Flavor w2) => SumFl (w1 :: FLAVOR j1 k1) (w2 :: FLAVOR j2 k2) (f :.: g :: COPRODUCT k1 k2 -> COPRODUCT k1 k2 -> Type) (g' :.: f' :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Optic.Sum Methods withSumL :: forall (s :: k1) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) (t :: j1) r. (f :.: g) ('L s :: COPRODUCT k1 k2) a -> (g' :.: f') b ('L t :: COPRODUCT j1 j2) -> (forall (p1 :: k1 +-> k1) (q1 :: j1 +-> j1) (a' :: k1) (b' :: j1). (w1 p1 q1, Profunctor p1, Profunctor q1, a ~ ('L a' :: COPRODUCT k1 k2), b ~ ('L b' :: COPRODUCT j1 j2)) => p1 s a' -> q1 b' t -> r) -> r Source Github # withSumR :: forall (s :: k2) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) (t :: j2) r. (f :.: g) ('R s :: COPRODUCT k1 k2) a -> (g' :.: f') b ('R t :: COPRODUCT j1 j2) -> (forall (p2 :: k2 +-> k2) (q2 :: j2 +-> j2) (a' :: k2) (b' :: j2). (w2 p2 q2, Profunctor p2, Profunctor q2, a ~ ('R a' :: COPRODUCT k1 k2), b ~ ('R b' :: COPRODUCT j1 j2)) => p2 s a' -> q2 b' t -> r) -> r Source Github # | |
| (CategoryOf j, CategoryOf k) => FunctorForRep (Lft :: j +-> COPRODUCT j k) Source Github # | |
| (CategoryOf j, CategoryOf k) => FunctorForRep (Rgt :: k +-> COPRODUCT j k) Source Github # | |
| (HasPushouts j, HasEqualizers j, HasPushouts k, HasEqualizers k) => HasEpiMonoFactorization (COPRODUCT j k) Source Github # | |
| (HasCoequalizers j, HasCoequalizers k) => HasCoequalizers (COPRODUCT j k) Source Github # | Dual to the |
Defined in Proarrow.Category.Instance.Coproduct Methods coequalize :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k) r. (a ~> b) -> (a ~> b) -> (forall (c :: COPRODUCT j k). (b ~> c) -> r) -> r Source Github # factorCoequalizer :: forall (c :: COPRODUCT j k) (x :: COPRODUCT j k) (c' :: COPRODUCT j k). (x ~> c) -> (x ~> c') -> c ~> c' Source Github # | |
| (HasPushouts j, HasPushouts k) => HasPushouts (COPRODUCT j k) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods pushout :: forall (o :: COPRODUCT j k) (a :: COPRODUCT j k) (b :: COPRODUCT j k) r. (o ~> a) -> (o ~> b) -> (forall (p :: COPRODUCT j k). (a ~> p) -> (b ~> p) -> r) -> r Source Github # factorPushout :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k) (p :: COPRODUCT j k) (q :: COPRODUCT j k). (a ~> p) -> (b ~> p) -> (a ~> q) -> (b ~> q) -> p ~> q Source Github # | |
| (CategoryOf j, CategoryOf k) => CategoryOf (COPRODUCT j k) Source Github # | The coproduct of two categories. |
Defined in Proarrow.Category.Instance.Coproduct | |
| (HasEqualizers j, HasEqualizers k) => HasEqualizers (COPRODUCT j k) Source Github # | Morphisms of |
Defined in Proarrow.Category.Instance.Coproduct | |
| (HasPullbacks j, HasPullbacks k) => HasPullbacks (COPRODUCT j k) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods pullback :: forall (o :: COPRODUCT j k) (a :: COPRODUCT j k) (b :: COPRODUCT j k) r. (a ~> o) -> (b ~> o) -> (forall (p :: COPRODUCT j k). (p ~> a) -> (p ~> b) -> r) -> r Source Github # factorPullback :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k) (p :: COPRODUCT j k) (q :: COPRODUCT j k). (p ~> a) -> (p ~> b) -> (q ~> a) -> (q ~> b) -> q ~> p Source Github # | |
| CategoryOf k => FunctorForRep (Codiag :: COPRODUCT k k +-> k) Source Github # | |
| (Profunctor p, Profunctor q) => Profunctor (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods dimap :: forall (c :: COPRODUCT k1 k2) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) (d :: COPRODUCT j1 j2). (c ~> a) -> (b ~> d) -> (p :++: q) a b -> (p :++: q) c d Source Github # lmap :: forall (c :: COPRODUCT k1 k2) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). (c ~> a) -> (p :++: q) a b -> (p :++: q) c b Source Github # rmap :: forall (b :: COPRODUCT j1 j2) (d :: COPRODUCT j1 j2) (a :: COPRODUCT k1 k2). (b ~> d) -> (p :++: q) a b -> (p :++: q) a d Source Github # (\\) :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) r. ((Ob a, Ob b) => r) -> (p :++: q) a b -> r Source Github # | |
| (Corepresentable p, Corepresentable q) => Corepresentable (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods coindex :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). (p :++: q) a b -> ((p :++: q) %% a) ~> b Source Github # cotabulate :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). Ob a => (((p :++: q) %% a) ~> b) -> (p :++: q) a b Source Github # corepMap :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT k1 k2). (a ~> b) -> ((p :++: q) %% a) ~> ((p :++: q) %% b) Source Github # corepUniv :: forall (a :: COPRODUCT k1 k2). Ob a => (p :++: q) a ((p :++: q) %% a) Source Github # | |
| (Representable p, Representable q) => Representable (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods index :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). (p :++: q) a b -> a ~> ((p :++: q) % b) Source Github # tabulate :: forall (b :: COPRODUCT j1 j2) (a :: COPRODUCT k1 k2). Ob b => (a ~> ((p :++: q) % b)) -> (p :++: q) a b Source Github # repMap :: forall (a :: COPRODUCT j1 j2) (b :: COPRODUCT j1 j2). (a ~> b) -> ((p :++: q) % a) ~> ((p :++: q) % b) Source Github # repUniv :: forall (a :: COPRODUCT j1 j2). Ob a => (p :++: q) ((p :++: q) % a) a Source Github # | |
| (DaggerProfunctor p, DaggerProfunctor q) => DaggerProfunctor (p :++: q :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
| (Promonad p, Promonad q) => Promonad (p :++: q :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github # | The coproduct of two promonads. |
| DiscreteProfunctor p => FunctorForRep (CollageAsCoprod :: COLLAGE p +-> COPRODUCT j k) Source Github # | |
| type (Lft :: j +-> COPRODUCT j k) @ (a :: j) Source Github # | |
| type (Rgt :: k +-> COPRODUCT j k) @ (a :: k) Source Github # | |
| type (~>) Source Github # | |
| type Ob (a :: COPRODUCT j k) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct | |
| type (Codiag :: COPRODUCT k k +-> k) @ ('L a :: COPRODUCT k k) Source Github # | |
| type (Codiag :: COPRODUCT k k +-> k) @ ('R a :: COPRODUCT k k) Source Github # | |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) %% ('L a :: COPRODUCT k1 k2) Source Github # | |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) %% ('R a :: COPRODUCT k1 k2) Source Github # | |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) % ('L a :: COPRODUCT j1 j2) Source Github # | |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) % ('R a :: COPRODUCT j1 j2) Source Github # | |
| type (CollageAsCoprod :: COLLAGE p +-> COPRODUCT j k) @ ('L a :: COLLAGE p) Source Github # | |
Defined in Proarrow.Category.Instance.Collage | |
| type (CollageAsCoprod :: COLLAGE p +-> COPRODUCT j k) @ ('R a :: COLLAGE p) Source Github # | |
Defined in Proarrow.Category.Instance.Collage | |
data ((p :: j1 +-> k1) :++: (q :: j2 +-> k2)) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) where Source Github #
Constructors
| InjL :: forall {j1} {k1} {j2} {k2} (p :: j1 +-> k1) (a1 :: k1) (b1 :: j1) (q :: j2 +-> k2). p a1 b1 -> (p :++: q) ('L a1 :: COPRODUCT k1 k2) ('L b1 :: COPRODUCT j1 j2) | |
| InjR :: forall {j2} {k2} {j1} {k1} (q :: j2 +-> k2) (a1 :: k2) (b1 :: j2) (p :: j1 +-> k1). q a1 b1 -> (p :++: q) ('R a1 :: COPRODUCT k1 k2) ('R b1 :: COPRODUCT j1 j2) |
Instances
| (w1 p1 q1, w2 p2 q2, Profunctor p1, Profunctor p2, Profunctor q1, Profunctor q2) => SumFl (w1 :: (j4 +-> j4) -> (j5 +-> j5) -> Constraint) (w2 :: (j6 +-> j6) -> (j7 +-> j7) -> Constraint) (p1 :++: p2 :: COPRODUCT j4 j6 -> COPRODUCT j4 j6 -> Type) (q1 :++: q2 :: COPRODUCT j5 j7 -> COPRODUCT j5 j7 -> Type) Source Github # | |
Defined in Proarrow.Optic.Sum Methods withSumL :: forall (s :: j4) (a :: COPRODUCT j4 j6) (b :: COPRODUCT j5 j7) (t :: j5) r. (p1 :++: p2) ('L s :: COPRODUCT j4 j6) a -> (q1 :++: q2) b ('L t :: COPRODUCT j5 j7) -> (forall (p10 :: j4 +-> j4) (q10 :: j5 +-> j5) (a' :: j4) (b' :: j5). (w1 p10 q10, Profunctor p10, Profunctor q10, a ~ ('L a' :: COPRODUCT j4 j6), b ~ ('L b' :: COPRODUCT j5 j7)) => p10 s a' -> q10 b' t -> r) -> r Source Github # withSumR :: forall (s :: j6) (a :: COPRODUCT j4 j6) (b :: COPRODUCT j5 j7) (t :: j7) r. (p1 :++: p2) ('R s :: COPRODUCT j4 j6) a -> (q1 :++: q2) b ('R t :: COPRODUCT j5 j7) -> (forall (p20 :: j6 +-> j6) (q20 :: j7 +-> j7) (a' :: j6) (b' :: j7). (w2 p20 q20, Profunctor p20, Profunctor q20, a ~ ('R a' :: COPRODUCT j4 j6), b ~ ('R b' :: COPRODUCT j5 j7)) => p20 s a' -> q20 b' t -> r) -> r Source Github # | |
| (Profunctor p, Profunctor q) => Profunctor (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods dimap :: forall (c :: COPRODUCT k1 k2) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) (d :: COPRODUCT j1 j2). (c ~> a) -> (b ~> d) -> (p :++: q) a b -> (p :++: q) c d Source Github # lmap :: forall (c :: COPRODUCT k1 k2) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). (c ~> a) -> (p :++: q) a b -> (p :++: q) c b Source Github # rmap :: forall (b :: COPRODUCT j1 j2) (d :: COPRODUCT j1 j2) (a :: COPRODUCT k1 k2). (b ~> d) -> (p :++: q) a b -> (p :++: q) a d Source Github # (\\) :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) r. ((Ob a, Ob b) => r) -> (p :++: q) a b -> r Source Github # | |
| (Corepresentable p, Corepresentable q) => Corepresentable (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods coindex :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). (p :++: q) a b -> ((p :++: q) %% a) ~> b Source Github # cotabulate :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). Ob a => (((p :++: q) %% a) ~> b) -> (p :++: q) a b Source Github # corepMap :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT k1 k2). (a ~> b) -> ((p :++: q) %% a) ~> ((p :++: q) %% b) Source Github # corepUniv :: forall (a :: COPRODUCT k1 k2). Ob a => (p :++: q) a ((p :++: q) %% a) Source Github # | |
| (Representable p, Representable q) => Representable (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Coproduct Methods index :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2). (p :++: q) a b -> a ~> ((p :++: q) % b) Source Github # tabulate :: forall (b :: COPRODUCT j1 j2) (a :: COPRODUCT k1 k2). Ob b => (a ~> ((p :++: q) % b)) -> (p :++: q) a b Source Github # repMap :: forall (a :: COPRODUCT j1 j2) (b :: COPRODUCT j1 j2). (a ~> b) -> ((p :++: q) % a) ~> ((p :++: q) % b) Source Github # repUniv :: forall (a :: COPRODUCT j1 j2). Ob a => (p :++: q) ((p :++: q) % a) a Source Github # | |
| (DaggerProfunctor p, DaggerProfunctor q) => DaggerProfunctor (p :++: q :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github # | |
| (Promonad p, Promonad q) => Promonad (p :++: q :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github # | The coproduct of two promonads. |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) %% ('L a :: COPRODUCT k1 k2) Source Github # | |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) %% ('R a :: COPRODUCT k1 k2) Source Github # | |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) % ('L a :: COPRODUCT j1 j2) Source Github # | |
| type (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) % ('R a :: COPRODUCT j1 j2) Source Github # | |
class IsLR (a :: COPRODUCT j k) where Source Github #
Methods
lrCase :: (forall (b :: j). (a ~ ('L b :: COPRODUCT j k), Ob b) => r) -> (forall (b :: k). (a ~ ('R b :: COPRODUCT j k), Ob b) => r) -> r Source Github #