| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Profunctor.Instance.Composition
Description
Synopsis
- data ((p :: j +-> k) :.: (q :: i +-> j)) (a :: k) (c :: i) where
- o :: forall {i} {j} {k} (p :: j +-> k) (q :: j +-> k) (r :: i +-> j) (s :: i +-> j). (p :~> q) -> (r :~> s) -> (p :.: r) :~> (q :.: s)
- compComp :: forall {i} (p :: CAT i) (q :: CAT i) (b :: i) (c :: i) (a :: i). (Promonad p, Promonad q) => ((q :.: p) :~> (p :.: q)) -> (p :.: q) b c -> (p :.: q) a b -> (p :.: q) a c
Documentation
data ((p :: j +-> k) :.: (q :: i +-> j)) (a :: k) (c :: i) where Source Github #
Constructors
| (:.:) :: forall {j} {k} {i} (b :: j) (a :: k) (c :: i) (p :: j +-> k) (q :: i +-> j). ~(p a b) -> ~(q b c) -> (p :.: q) a c |
Instances
| (ProdFl w1 w2 f f', ProdFl w1 w2 g g', Flavor w1, Flavor w2) => ProdFl (w1 :: FLAVOR j1 k1) (w2 :: FLAVOR j2 k2) (f :.: g :: (k1, k2) -> (k1, k2) -> Type) (g' :.: f' :: (j1, j2) -> (j1, j2) -> Type) Source Github # | |
Defined in Proarrow.Optic.Prod Methods withProdP :: forall (s :: (k1, k2)) (a :: (k1, k2)) (b :: (j1, j2)) (t :: (j1, j2)) r. (f :.: g) s a -> (g' :.: f') b t -> (forall (p1 :: k1 +-> k1) (p2 :: k2 +-> k2) (q1 :: j1 +-> j1) (q2 :: j2 +-> j2). (w1 p1 q1, w2 p2 q2, Profunctor p1, Profunctor p2, Profunctor q1, Profunctor q2) => p1 ((Fst :: (k1, k2) +-> k1) @ s) ((Fst :: (k1, k2) +-> k1) @ a) -> p2 ((Snd :: (k1, k2) +-> k2) @ s) ((Snd :: (k1, k2) +-> k2) @ a) -> q1 ((Fst :: (j1, j2) +-> j1) @ b) ((Fst :: (j1, j2) +-> j1) @ t) -> q2 ((Snd :: (j1, j2) +-> j2) @ b) ((Snd :: (j1, j2) +-> j2) @ 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 # | |
| (DayFl w1 w2 f f', DayFl w1 w2 g g') => DayFl (w1 :: FLAVOR i1 i2) (w2 :: FLAVOR i1 i2) (f :.: g :: i2 -> i2 -> Type) (g' :.: f' :: i1 -> i1 -> Type) Source Github # | |
Defined in Proarrow.Optic.Day | |
| (Strong t p, Strong t q) => Strong (t :: (m, i) +-> i) (p :.: q :: i -> i -> Type) Source Github # | |
| (Representable g, Representable f, Profunctor j, f ~ (j <| g)) => RelativeComonad (j :: k2 +-> i) (RepCostar f :.: RepCostar g :: k2 -> i -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.Rift | |
| (Corepresentable g, Corepresentable f, Profunctor j, f ~ (g |> j)) => RelativeMonad (j :: k1 +-> i) (CorepStar g :.: CorepStar f :: k1 -> i -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.Ran | |
| (ActFl act f g, ActFl act f' g') => ActFl (act :: (m, i) +-> i) (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
| (FoldFl p1 q1, FoldFl p2 q2, Monoidal k) => FoldFl (Beside p1 p2 :: k -> k -> Type) (CoBeside q1 q2 :: k -> k -> Type) Source Github # | |
| (FoldFl p1 q1, FoldFl p2 q2, HasBinaryCoproducts k) => FoldFl (BesideSum p1 p2 :: k -> k -> Type) (CoBesideSum q1 q2 :: k -> k -> Type) Source Github # | |
| (Finitary w, Finitary s, FiniteCat j) => Finitary (w :.: s :: k -> i -> Type) Source Github # | The composite of finitary profunctors over a finite middle category is finitary. An element
at |
Defined in Proarrow.Category.Enriched.Finitary.Topos Methods size :: forall (a :: k) (b :: i). (Ob a, Ob b) => Natural Source Github # toIndex :: forall (a :: k) (b :: i). (Ob a, Ob b) => (w :.: s) a b -> Natural Source Github # fromIndex :: forall (a :: k) (b :: i). (Ob a, Ob b) => Natural -> (w :.: s) a b Source Github # elements :: forall (a :: k) (b :: i). (Ob a, Ob b) => [(w :.: s) a b] Source Github # | |
| DecideComp (ThinCompStrategy p q) p q => DecidableProfunctor (p :.: q :: k -> j2 -> Type) Source Github # | |
Defined in Proarrow.Category.Enriched.Thin.Composition | |
| ComposeThin (ThinCompStrategy p q) p q => ThinProfunctor (p :.: q :: k -> j2 -> Type) Source Github # | |
| (MonoidalProfunctor p, MonoidalProfunctor q) => MonoidalProfunctor (p :.: q :: k -> j2 -> Type) Source Github # | |
| (Profunctor p, Profunctor q) => Profunctor (p :.: q :: k -> j2 -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.Composition Methods dimap :: forall (c :: k) (a :: k) (b :: j2) (d :: j2). (c ~> a) -> (b ~> d) -> (p :.: q) a b -> (p :.: q) c d Source Github # lmap :: forall (c :: k) (a :: k) (b :: j2). (c ~> a) -> (p :.: q) a b -> (p :.: q) c b Source Github # rmap :: forall (b :: j2) (d :: j2) (a :: k). (b ~> d) -> (p :.: q) a b -> (p :.: q) a d Source Github # (\\) :: forall (a :: k) (b :: j2) r. ((Ob a, Ob b) => r) -> (p :.: q) a b -> r Source Github # | |
| (FunctorForRep p, FunctorForRep q) => FunctorForRep (p :.: q :: k -> j2 -> Type) Source Github # | |
| (Corepresentable p, Corepresentable q) => Corepresentable (p :.: q :: k -> j2 -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Corepresentable Methods coindex :: forall (a :: k) (b :: j2). (p :.: q) a b -> ((p :.: q) %% a) ~> b Source Github # cotabulate :: forall (a :: k) (b :: j2). 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 # corepUniv :: forall (a :: k). Ob a => (p :.: q) a ((p :.: q) %% a) Source Github # | |
| (Representable p, Representable q) => Representable (p :.: q :: k -> j2 -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Representable Methods index :: forall (a :: k) (b :: j2). (p :.: q) a b -> a ~> ((p :.: q) % b) Source Github # tabulate :: forall (b :: j2) (a :: k). Ob b => (a ~> ((p :.: q) % b)) -> (p :.: q) a b Source Github # repMap :: forall (a :: j2) (b :: j2). (a ~> b) -> ((p :.: q) % a) ~> ((p :.: q) % b) Source Github # repUniv :: forall (a :: j2). Ob a => (p :.: q) ((p :.: q) % a) a Source Github # | |
| (Corepresentable j2, HasColimits j1 k, HasColimits j2 k) => HasColimits (j1 :.: j2 :: i -> a -> Type) k Source Github # | |
Defined in Proarrow.Colimit | |
| (Representable j1, HasLimits j1 k, HasLimits j2 k) => HasLimits (j1 :.: j2 :: a -> i -> Type) k Source Github # | |
Defined in Proarrow.Limit | |
| (Proadjunction l1 r1, Proadjunction l2 r2) => Proadjunction (l1 :.: l2 :: i -> k -> Type) (r2 :.: r1 :: k -> i -> Type) Source Github # | |
| (AlgLensFl m f g, AlgLensFl m f' g') => AlgLensFl (m :: k +-> k) (f :.: f' :: k -> k -> Type) (g' :.: g :: k -> k -> Type) Source Github # | |
| (ClassifyFl l f g, ClassifyFl l f' g') => ClassifyFl (l :: i +-> i) (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.Action | |
| (AffineFoldFl f g, AffineFoldFl f' g') => AffineFoldFl (f :.: f' :: k -> k -> Type) (g' :.: g :: j -> j -> Type) Source Github # | |
Defined in Proarrow.Optic.AffineFold Methods previewP :: forall (s :: k) (a :: k). Bicartesian k => (f :.: f') s a -> s ~> (a || (TerminalObject :: k)) Source Github # | |
| (FoldFl f g, FoldFl f' g') => FoldFl (f :.: f' :: k -> k -> Type) (g' :.: g :: j -> j -> Type) Source Github # | |
| (GetterFl f g, GetterFl f' g') => GetterFl (f :.: f' :: k -> k -> Type) (g' :.: g :: j -> j -> Type) Source Github # | |
| (SetterFl p1 q1, SetterFl p2 q2, Monoidal k) => SetterFl (Beside p1 p2 :: k -> k -> Type) (CoBeside q1 q2 :: k -> k -> Type) Source Github # | |
| (SetterFl p1 q1, SetterFl p2 q2, HasBinaryCoproducts k) => SetterFl (BesideSum p1 p2 :: k -> k -> Type) (CoBesideSum q1 q2 :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Optic.Traversal | |
| (MonTravFl p1 q1, MonTravFl p2 q2, Monoidal k) => MonTravFl (Beside p1 p2 :: k -> k -> Type) (CoBeside q1 q2 :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Optic.Traversal | |
| (MonTravFl p1 q1, MonTravFl p2 q2, HasBinaryCoproducts k) => MonTravFl (BesideSum p1 p2 :: k -> k -> Type) (CoBesideSum q1 q2 :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Optic.Traversal Methods monTravP :: forall r (s :: k) (a :: k) (b :: k) (t :: k). StrongDistributiveProfunctor r => BesideSum p1 p2 s a -> CoBesideSum q1 q2 b t -> r a b -> r s t Source Github # | |
| (TravFl p1 q1, TravFl p2 q2, Monoidal k) => TravFl (Beside p1 p2 :: k -> k -> Type) (CoBeside q1 q2 :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Optic.Traversal | |
| (TravFl p1 q1, TravFl p2 q2, HasBinaryCoproducts k) => TravFl (BesideSum p1 p2 :: k -> k -> Type) (CoBesideSum q1 q2 :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Optic.Traversal Methods travP :: forall r (s :: k) (a :: k) (b :: k) (t :: k). (StrongDistributiveProfunctor r, Strong (ProdAction :: k -> (PROD k, k) -> Type) r) => BesideSum p1 p2 s a -> CoBesideSum q1 q2 b t -> r a b -> r s t Source Github # | |
| (Cotraversable p, Cotraversable q) => Cotraversable (p :.: q :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Category.Monoidal.Distributive | |
| (Traversable p, Traversable q) => Traversable (p :.: q :: k -> k -> Type) Source Github # | |
| Proadjunction p q => Promonad (q :.: p :: k -> k -> Type) Source Github # | |
| Proadjunction p q => Procomonad (p :.: q :: k -> k -> Type) Source Github # | |
| (AffineTravFl f g, AffineTravFl f' g') => AffineTravFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.AffineTraversal | |
| (GlassFl f g, GlassFl f' g') => GlassFl (f :.: f' :: k -> k -> Type) (g' :.: g :: k -> k -> Type) Source Github # | Composition threads the selector through: the outer glass is given the consumer
|
| (GrateFl f g, GrateFl f' g') => GrateFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
| (CotravFl f g, CotravFl f' g') => CotravFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.Kaleidoscope | |
| (KaleidoFl f g, KaleidoFl f' g') => KaleidoFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.Kaleidoscope | |
| (LensFl f g, LensFl f' g') => LensFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.Lens | |
| (MonLensFl f g, MonLensFl f' g') => MonLensFl (f :.: f' :: k -> k -> Type) (g' :.: g :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Optic.MonoidalLens Methods withMonLensP :: forall (s :: k) (a :: k) (b :: k) (t :: k) r. SymMonoidal k => (f :.: f') s a -> (g' :.: g) b t -> (forall (m :: k). Ob m => ComonoidOn m -> (s ~> (m ** a)) -> ((m ** b) ~> t) -> r) -> r Source Github # | |
| (PowerGrateFl f g, PowerGrateFl f' g') => PowerGrateFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.PowerGrate Methods powerGrateP :: forall r (s :: i) (a :: i) (b :: i) (t :: i). MonoidalProfunctor r => (f :.: f') s a -> (g' :.: g) b t -> r a b -> r s t Source Github # | |
| (PrismFl f g, PrismFl f' g') => PrismFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.Prism | |
| (SetterFl f g, SetterFl f' g') => SetterFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
| (TracerFl f g, TracerFl f' g') => TracerFl (f :.: f' :: k -> k -> Type) (g' :.: g :: k -> k -> Type) Source Github # | |
| (MonTravFl f g, MonTravFl f' g') => MonTravFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.Traversal | |
| (TravFl f g, TravFl f' g') => TravFl (f :.: f' :: i -> i -> Type) (g' :.: g :: i -> i -> Type) Source Github # | |
Defined in Proarrow.Optic.Traversal | |
| (Profunctor f, Profunctor g, MonoidalProfunctor (Coprod f), MonoidalProfunctor (Coprod g)) => MonoidalProfunctor (Coprod (f :.: g) :: COPROD k -> COPROD j2 -> Type) Source Github # | |
Defined in Proarrow.Colimit.BinaryCoproduct | |
| Functor ((:.:) :: (j +-> k) -> (i +-> j) -> k -> i -> Type) Source Github # | |
| Profunctor p => Functor ((:.:) p :: (i +-> j) -> k -> i -> Type) Source Github # | |
| type Colimit (j1 :.: j2 :: i -> a -> Type) (d :: k +-> i) Source Github # | |
| type Limit (j1 :.: j2 :: a -> i -> Type) (d :: i +-> k) Source Github # | |
| type (p :.: q :: k -> j1 -> Type) @ (b :: j1) Source Github # | |
| type (p :.: q :: k -> j1 -> Type) %% (a :: k) Source Github # | |
| type (p :.: q :: k -> j1 -> Type) % (a :: j1) Source Github # | |
| type HasArrow (p :.: q :: k -> j1 -> Type) (a :: k) (c :: j1) Source Github # | |
Defined in Proarrow.Category.Enriched.Thin.Composition type HasArrow (p :.: q :: k -> j1 -> Type) (a :: k) (c :: j1) = HasArrowComp (ThinCompStrategy p q) p q a c | |
| type Holds (p :.: q :: k -> j1 -> Type) (a :: k) (c :: j1) Source Github # | |
Defined in Proarrow.Category.Enriched.Thin.Composition type Holds (p :.: q :: k -> j1 -> Type) (a :: k) (c :: j1) = HoldsComp (ThinCompStrategy p q) p q a c | |