Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type PRO j k = j -> k -> Type
- type (+->) j k = PRO k j
- type CAT k = PRO k k
- type BI k = (k, k) -> k
- type OB k = k -> Constraint
- type Kind = Type
- class Any (a :: k)
- class Promonad ((~>) :: CAT k) => CategoryOf k where
- class (Promonad cat, CategoryOf k, cat ~ ((~>) :: CAT k)) => Category (cat :: CAT k)
- type (:~>) (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) = forall (a :: k) (b :: k1). p a b -> q a b
- class (CategoryOf j, CategoryOf k) => Profunctor (p :: PRO j k) where
- (//) :: forall {k1} {k2} p (a :: k1) (b :: k2) r. Profunctor p => p a b -> ((Ob a, Ob b) => r) -> r
- lmap :: forall {j} {k} p (c :: j) (a :: j) (b :: k). Profunctor p => (c ~> a) -> p a b -> p c b
- rmap :: forall {j} {k} p (b :: k) (d :: k) (a :: j). Profunctor p => (b ~> d) -> p a b -> p a d
- dimapDefault :: forall {k} p (c :: k) (a :: k) (b :: k) (d :: k). Promonad p => p c a -> p b d -> p a b -> p c d
- class Profunctor p => Promonad (p :: PRO k k) where
- arr :: forall {k} p (a :: k) (b :: k). Promonad p => (a ~> b) -> p a b
- type Obj (a :: k) = a ~> a
- obj :: forall {k} (a :: k). (CategoryOf k, Ob a) => Obj a
- src :: forall {k1} {k2} (a :: k2) (b :: k1) p. Profunctor p => p a b -> Obj a
- tgt :: forall {k1} {k2} (a :: k2) (b :: k1) p. Profunctor p => p a b -> Obj b
- type family UN (w :: j -> k) (wa :: k) :: j
- type Is (w :: j -> k) (a :: k) = a ~ w (UN w a)
Documentation
type OB k = k -> Constraint Source Comments #
class Any (a :: k) Source Comments #
Instances
Any (a :: k) Source Comments # | |
Defined in Proarrow.Core |
class Promonad ((~>) :: CAT k) => CategoryOf k Source Comments #
Instances
class (Promonad cat, CategoryOf k, cat ~ ((~>) :: CAT k)) => Category (cat :: CAT k) Source Comments #
type (:~>) (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) = forall (a :: k) (b :: k1). p a b -> q a b infixr 0 Source Comments #
class (CategoryOf j, CategoryOf k) => Profunctor (p :: PRO j k) where Source Comments #
dimap :: forall (c :: j) (a :: j) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> p a b -> p c d Source Comments #
(\\) :: forall (a :: j) (b :: k) r. ((Ob a, Ob b) => r) -> p a b -> r infixl 1 Source Comments #
Instances
Profunctor Booleans Source Comments # | |
Profunctor Cat Source Comments # | |
Profunctor (:-) Source Comments # | |
Defined in Proarrow.Category.Instance.Constraint dimap :: forall (c :: CONSTRAINT) (a :: CONSTRAINT) (b :: CONSTRAINT) (d :: CONSTRAINT). (c ~> a) -> (b ~> d) -> (a :- b) -> c :- d Source Comments # (\\) :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) r. ((Ob a, Ob b) => r) -> (a :- b) -> r Source Comments # | |
Profunctor Linear Source Comments # | |
Profunctor Free Source Comments # | |
Profunctor Pointed Source Comments # | |
Defined in Proarrow.Category.Instance.PointedHask | |
Profunctor Simplex Source Comments # | |
Profunctor Zero Source Comments # | |
Profunctor Unit Source Comments # | |
Profunctor Forget Source Comments # | |
Profunctor Forget Source Comments # | |
CategoryOf k => Profunctor (Terminate :: () -> k -> Type) Source Comments # | |
Functor w => Profunctor (ComonoidAsCat w :: Type -> Type -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Nat dimap :: (c ~> a) -> (b ~> d) -> ComonoidAsCat w a b -> ComonoidAsCat w c d Source Comments # (\\) :: ((Ob a, Ob b) => r) -> ComonoidAsCat w a b -> r Source Comments # | |
Profunctor (Reader r :: Type -> Type -> Type) Source Comments # | |
Profunctor (Writer m :: Type -> Type -> Type) Source Comments # | |
CategoryOf k => Profunctor (Id :: k -> k -> Type) Source Comments # | |
Representable d => Profunctor (EndLimit d :: Type -> () -> Type) Source Comments # | |
Profunctor (Replacing a b :: Type -> Type -> Type) Source Comments # | |
Profunctor (Setting a b :: Type -> Type -> Type) Source Comments # | |
Profunctor (Viewing a b :: Type -> Type -> Type) Source Comments # | |
Profunctor (->) Source Comments # | |
Monoid m => Profunctor (Replicate m :: j -> Nat -> Type) Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (DayUnit :: j -> k -> Type) Source Comments # | |
(HasBinaryCoproducts k, Representable d) => Profunctor (CoproductColimit d :: k -> () -> Type) Source Comments # | |
Defined in Proarrow.Category.Colimit dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> CoproductColimit d a b -> CoproductColimit d c d0 Source Comments # (\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> CoproductColimit d a b -> r Source Comments # | |
HasInitialObject k => Profunctor (InitialLimit d :: k -> () -> Type) Source Comments # | |
Defined in Proarrow.Category.Colimit dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> InitialLimit d a b -> InitialLimit d c d0 Source Comments # (\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> InitialLimit d a b -> r Source Comments # | |
(HasBinaryProducts k, Representable d) => Profunctor (ProductLimit d :: k -> () -> Type) Source Comments # | |
Defined in Proarrow.Category.Limit dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> ProductLimit d a b -> ProductLimit d c d0 Source Comments # (\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> ProductLimit d a b -> r Source Comments # | |
HasTerminalObject k => Profunctor (TerminalLimit d :: k -> () -> Type) Source Comments # | |
Defined in Proarrow.Category.Limit dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> TerminalLimit d a b -> TerminalLimit d c d0 Source Comments # (\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> TerminalLimit d a b -> r Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (InitialProfunctor :: k -> j -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Initial dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> InitialProfunctor a b -> InitialProfunctor c d Source Comments # (\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> InitialProfunctor a b -> r Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (TerminalProfunctor :: k -> j -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Terminal dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> TerminalProfunctor a b -> TerminalProfunctor c d Source Comments # (\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> TerminalProfunctor a b -> r Source Comments # | |
Profunctor p => Profunctor (Fix p :: k -> k -> Type) Source Comments # | |
Profunctor p => Profunctor (FreeMonoid p :: k -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> FreeMonoid p a b -> FreeMonoid p c d Source Comments # (\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> FreeMonoid p a b -> r Source Comments # | |
Profunctor p => Profunctor (FreePromonad p :: k -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> FreePromonad p a b -> FreePromonad p c d Source Comments # (\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> FreePromonad p a b -> r Source Comments # | |
(Monoidal k, Ob s) => Profunctor (State s :: k -> k -> Type) Source Comments # | |
Corepresentable p => Profunctor (Corep p :: j -> k -> Type) Source Comments # | |
Functor f => Profunctor (Costar f :: j -> k -> Type) Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (Coyoneda p :: j -> k -> Type) Source Comments # | |
Corepresentable p => Profunctor (CorepStar p :: j -> k -> Type) Source Comments # | |
Representable p => Profunctor (RepCostar p :: j -> k -> Type) Source Comments # | |
Representable p => Profunctor (RepStar p :: j -> k -> Type) Source Comments # | |
Functor f => Profunctor (Star f :: j -> k -> Type) Source Comments # | |
Profunctor p => Profunctor (Wrapped p :: j -> k -> Type) Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (Yoneda p :: j -> k -> Type) Source Comments # | |
(Monoidal k, Ob a, Ob b) => Profunctor (Bipara a b :: k -> k -> Type) Source Comments # | |
Monad m => Profunctor (Classifying m a b :: Type -> Type -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Optic dimap :: (c ~> a0) -> (b0 ~> d) -> Classifying m a b a0 b0 -> Classifying m a b c d Source Comments # (\\) :: ((Ob a0, Ob b0) => r) -> Classifying m a b a0 b0 -> r Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (p :+: q :: j -> k -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (Day p q :: j -> k -> Type) Source Comments # | |
(Monoidal j, Monoidal k, Profunctor p, Profunctor q) => Profunctor (DayExp p q :: j -> k -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (p :~>: q :: j -> k -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (p :*: q :: j -> k -> Type) Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (Yo a b :: j -> k -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (p :.: q :: j1 -> k -> Type) Source Comments # | |
(Profunctor p, Profunctor j2) => Profunctor (Ran ('OP j2) p :: j1 -> k -> Type) Source Comments # | |
(Profunctor p, Profunctor j2) => Profunctor (Rift ('OP j2) p :: j1 -> k -> Type) Source Comments # | |
(Profunctor j3, Profunctor p) => Profunctor (Precompose j3 p :: j2 -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Ran dimap :: forall (c :: j2) (a :: j2) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Precompose j3 p a b -> Precompose j3 p c d Source Comments # (\\) :: forall (a :: j2) (b :: k) r. ((Ob a, Ob b) => r) -> Precompose j3 p a b -> r Source Comments # | |
(CategoryOf c, CategoryOf d) => Profunctor (Optic w a b :: c -> d -> Type) Source Comments # | |
CategoryOf k => Profunctor (DoubleNeg :: k -> DUAL (DUAL k) -> Type) Source Comments # | |
Profunctor p => Profunctor (CoprodDom p :: j1 -> COPROD j2 -> Type) Source Comments # | |
Monad m => Profunctor (Updating a b :: Type -> KlCat m -> Type) Source Comments # | |
CategoryOf k => Profunctor (Hom :: () -> (OPPOSITE k, k) -> Type) Source Comments # | |
Closed k => Profunctor (ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) Source Comments # | |
Defined in Proarrow.Object.Exponential | |
Promonad p => Profunctor (KleisliForget p :: j -> KLEISLI p -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Kleisli | |
(CategoryOf j, CategoryOf k) => Profunctor (FstCat :: j -> (j, k) -> Type) Source Comments # | |
CategoryOf k => Profunctor (Forget ob :: k -> SUBCAT ob -> Type) Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (SndCat :: k -> (j, k) -> Type) Source Comments # | |
(Profunctor p, CategoryOf j, CategoryOf k) => Profunctor (Uncurry p :: k -> (i, j) -> Type) Source Comments # | |
(Profunctor p, Representable f, Representable g, Reifies s (ProfSq p (Id :: j2 -> j2 -> Type) f g)) => Profunctor (CotabulatorFactorizer s p f g :: j2 -> COLLAGE p -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Prof dimap :: forall (c :: j2) (a :: j2) (b :: COLLAGE p) (d :: COLLAGE p). (c ~> a) -> (b ~> d) -> CotabulatorFactorizer s p f g a b -> CotabulatorFactorizer s p f g c d Source Comments # (\\) :: forall (a :: j2) (b :: COLLAGE p) r. ((Ob a, Ob b) => r) -> CotabulatorFactorizer s p f g a b -> r Source Comments # | |
Profunctor (LTE :: FIN n -> FIN n -> Type) Source Comments # | |
CategoryOf k => Profunctor (List :: LIST k -> LIST k -> Type) Source Comments # | |
Num a => Profunctor (Mat :: MatK a -> MatK a -> Type) Source Comments # | |
PreorderOf k => Profunctor (PoAsCat :: POCATK k -> POCATK k -> Type) Source Comments # | |
BiCCC k => Profunctor (FreeCCC :: FK k -> FK k -> Type) Source Comments # | |
Monoidal k => Profunctor (Strictified :: [k] -> [k] -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Strictified dimap :: forall (c :: [k]) (a :: [k]) (b :: [k]) (d :: [k]). (c ~> a) -> (b ~> d) -> Strictified a b -> Strictified c d Source Comments # (\\) :: forall (a :: [k]) (b :: [k]) r. ((Ob a, Ob b) => r) -> Strictified a b -> r Source Comments # | |
Profunctor (Previewing a b :: COPROD Type -> COPROD Type -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Optic dimap :: forall (c :: COPROD Type) (a0 :: COPROD Type) (b0 :: COPROD Type) (d :: COPROD Type). (c ~> a0) -> (b0 ~> d) -> Previewing a b a0 b0 -> Previewing a b c d Source Comments # (\\) :: forall (a0 :: COPROD Type) (b0 :: COPROD Type) r. ((Ob a0, Ob b0) => r) -> Previewing a b a0 b0 -> r Source Comments # | |
Profunctor p => Profunctor (Rev p :: REV k -> REV j -> Type) Source Comments # | |
Profunctor p => Profunctor (Op p :: OPPOSITE j -> OPPOSITE k -> Type) Source Comments # | |
Profunctor p => Profunctor (Coprod p :: COPROD k -> COPROD j -> Type) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct | |
Profunctor p => Profunctor (Prod p :: PROD k -> PROD j -> Type) Source Comments # | |
Promonad p => Profunctor (KleisliFree p :: KLEISLI p -> k -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Kleisli | |
HasCofree ob => Profunctor (CofreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # | |
HasFree ob => Profunctor (FreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # | |
(Profunctor p, CategoryOf i, CategoryOf j) => Profunctor (Curry p :: (k, OPPOSITE j) -> i -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (p :&&&: q :: (i, j) -> k -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (DistribDual p q :: (DUAL j, DUAL k) -> DUAL (j', k') -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Cat dimap :: forall (c :: (DUAL j, DUAL k)) (a :: (DUAL j, DUAL k)) (b :: DUAL (j', k')) (d :: DUAL (j', k')). (c ~> a) -> (b ~> d) -> DistribDual p q a b -> DistribDual p q c d Source Comments # (\\) :: forall (a :: (DUAL j, DUAL k)) (b :: DUAL (j', k')) r. ((Ob a, Ob b) => r) -> DistribDual p q a b -> r Source Comments # | |
Profunctor (Prof :: PROFK j k -> PROFK j k -> Type) Source Comments # | |
Rewrite g => Profunctor (Free :: FREE g -> FREE g -> Type) Source Comments # | |
Promonad p => Profunctor (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Kleisli | |
Profunctor (Nat' :: NatK j k -> NatK j k -> Type) Source Comments # | |
Profunctor (BiSimplex :: Simplex j k -> Simplex j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Simplex | |
Profunctor (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Terminal | |
Profunctor (Prof :: (j +-> k) -> (j +-> k) -> Type) Source Comments # | |
Profunctor (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Nat dimap :: forall (c :: k1 -> k2 -> k3 -> k4 -> Type) (a :: k1 -> k2 -> k3 -> k4 -> Type) (b :: k1 -> k2 -> k3 -> k4 -> Type) (d :: k1 -> k2 -> k3 -> k4 -> Type). (c ~> a) -> (b ~> d) -> Nat a b -> Nat c d Source Comments # (\\) :: forall (a :: k1 -> k2 -> k3 -> k4 -> Type) (b :: k1 -> k2 -> k3 -> k4 -> Type) r. ((Ob a, Ob b) => r) -> Nat a b -> r Source Comments # | |
Profunctor (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Nat dimap :: forall (c :: k1 -> k2 -> k3 -> Type) (a :: k1 -> k2 -> k3 -> Type) (b :: k1 -> k2 -> k3 -> Type) (d :: k1 -> k2 -> k3 -> Type). (c ~> a) -> (b ~> d) -> Nat a b -> Nat c d Source Comments # (\\) :: forall (a :: k1 -> k2 -> k3 -> Type) (b :: k1 -> k2 -> k3 -> Type) r. ((Ob a, Ob b) => r) -> Nat a b -> r Source Comments # | |
Profunctor (Nat :: (k1 -> Type) -> (k1 -> Type) -> Type) Source Comments # | |
Profunctor p => Profunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (Swap p q :: (k, i) -> (h, j) -> Type) Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Product | |
(HasCompanions hk vk, Ob0 vk h, Ob0 vk i, Ob0 vk j, Ob0 vk k) => Profunctor (Sq :: (hk j h, vk h i) -> (hk k i, vk j k) -> Type) Source Comments # | |
Defined in Proarrow.Category.Equipment | |
(HasCompanions hk vk, Ob0 vk h, Ob0 vk i, Ob0 vk j, Ob0 vk k) => Profunctor (RetroSq :: (hk k i, vk j k) -> (hk j h, vk h i) -> Type) Source Comments # | |
Defined in Proarrow.Category.Equipment dimap :: forall (c0 :: (hk k i, vk j k)) (a :: (hk k i, vk j k)) (b :: (hk j h, vk h i)) (d :: (hk j h, vk h i)). (c0 ~> a) -> (b ~> d) -> RetroSq a b -> RetroSq c0 d Source Comments # (\\) :: forall (a :: (hk k i, vk j k)) (b :: (hk j h, vk h i)) r. ((Ob a, Ob b) => r) -> RetroSq a b -> r Source Comments # | |
Profunctor p => Profunctor (InjR p :: COLLAGE p -> k -> Type) Source Comments # | |
Profunctor p => Profunctor (InjL p :: COLLAGE p -> k1 -> Type) Source Comments # | |
(CategoryOf k, Ob i, Ob j) => Profunctor (Category :: PLAINK k i j -> PLAINK k i j -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.CategoryAsBi | |
CategoryOf k => Profunctor (Mon2 :: MonK k i j -> MonK k i j -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.MonoidalAsBi | |
Profunctor p => Profunctor (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Collage | |
(Bicategory kk, Ob0 kk k) => Profunctor (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # | |
Profunctor (Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Bidiscrete dimap :: forall (c0 :: DiscreteK ob j k) (a :: DiscreteK ob j k) (b :: DiscreteK ob j k) (d :: DiscreteK ob j k). (c0 ~> a) -> (b ~> d) -> Bidiscrete a b -> Bidiscrete c0 d Source Comments # (\\) :: forall (a :: DiscreteK ob j k) (b :: DiscreteK ob j k) r. ((Ob a, Ob b) => r) -> Bidiscrete a b -> r Source Comments # | |
CategoryOf (kk j k2) => Profunctor (Co :: COK kk j k2 -> COK kk j k2 -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Co | |
CategoryOf (kk k2 j) => Profunctor (Op :: OPK kk j k2 -> OPK kk j k2 -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Op | |
(CategoryOf (kk j k2), Bicategory kk) => Profunctor (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Strictified | |
Profunctor ((~>) :: CAT (kk i j)) => Profunctor (HomW :: HK kk i j -> HK kk i j -> Type) Source Comments # | |
Profunctor ((~>) :: CAT (kk i j)) => Profunctor (Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Sub | |
CategoryOf (kk i j) => Profunctor (W :: WKK kk i j -> WKK kk i j -> Type) Source Comments # | |
Defined in Proarrow.Category.Equipment.BiAsEquipment | |
CategoryOf (kk i j) => Profunctor (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # | |
Defined in Proarrow.Category.Equipment.Quintet | |
IsOptic w c d => Profunctor (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Optic | |
(Bicategory kk, Ob s, Ob t, Ob0 kk h, Ob0 kk i, Ob0 kk j, Ob0 kk k2) => Profunctor (P kk kk (HK kk) s t :: HK kk h j +-> HK kk i k2) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Hom dimap :: forall (c :: HK kk i k2) (a :: HK kk i k2) (b :: HK kk h j) (d :: HK kk h j). (c ~> a) -> (b ~> d) -> P kk kk (HK kk) s t a b -> P kk kk (HK kk) s t c d Source Comments # (\\) :: forall (a :: HK kk i k2) (b :: HK kk h j) r. ((Ob a, Ob b) => r) -> P kk kk (HK kk) s t a b -> r Source Comments # | |
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Profunctor (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Product dimap :: forall (c :: PRODK jj kk ik jl) (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) (d :: PRODK jj kk ik jl). (c ~> a) -> (b ~> d) -> Prod a b -> Prod c d Source Comments # (\\) :: forall (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) r. ((Ob a, Ob b) => r) -> Prod a b -> r Source Comments # |
(//) :: forall {k1} {k2} p (a :: k1) (b :: k2) r. Profunctor p => p a b -> ((Ob a, Ob b) => r) -> r infixr 0 Source Comments #
lmap :: forall {j} {k} p (c :: j) (a :: j) (b :: k). Profunctor p => (c ~> a) -> p a b -> p c b Source Comments #
rmap :: forall {j} {k} p (b :: k) (d :: k) (a :: j). Profunctor p => (b ~> d) -> p a b -> p a d Source Comments #
dimapDefault :: forall {k} p (c :: k) (a :: k) (b :: k) (d :: k). Promonad p => p c a -> p b d -> p a b -> p c d Source Comments #
class Profunctor p => Promonad (p :: PRO k k) where Source Comments #
id :: forall (a :: k). Ob a => p a a Source Comments #
(.) :: forall (b :: k) (c :: k) (a :: k). p b c -> p a b -> p a c infixr 9 Source Comments #
Instances
Promonad Booleans Source Comments # | |
Promonad Cat Source Comments # | |
Promonad (:-) Source Comments # | |
Defined in Proarrow.Category.Instance.Constraint id :: forall (a :: CONSTRAINT). Ob a => a :- a Source Comments # (.) :: forall (b :: CONSTRAINT) (c :: CONSTRAINT) (a :: CONSTRAINT). (b :- c) -> (a :- b) -> a :- c Source Comments # | |
Promonad Linear Source Comments # | |
Promonad Pointed Source Comments # | |
Promonad Simplex Source Comments # | |
Promonad Zero Source Comments # | |
Promonad Unit Source Comments # | |
Comonoid w => Promonad (ComonoidAsCat w :: Type -> Type -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Nat id :: Ob a => ComonoidAsCat w a a Source Comments # (.) :: ComonoidAsCat w b c -> ComonoidAsCat w a b -> ComonoidAsCat w a c Source Comments # | |
Promonad (Reader r :: Type -> Type -> Type) Source Comments # | |
Monoid m => Promonad (Writer m :: Type -> Type -> Type) Source Comments # | |
CategoryOf k => Promonad (Id :: k -> k -> Type) Source Comments # | |
Promonad (->) Source Comments # | |
Profunctor p => Promonad (FreePromonad p :: k -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Free id :: forall (a :: k). Ob a => FreePromonad p a a Source Comments # (.) :: forall (b :: k) (c :: k) (a :: k). FreePromonad p b c -> FreePromonad p a b -> FreePromonad p a c Source Comments # | |
(Monoidal k, Ob s) => Promonad (State s :: k -> k -> Type) Source Comments # | |
Monad m => Promonad (Star (Prelude m) :: Type -> Type -> Type) Source Comments # | |
Promonad p => Promonad (Wrapped p :: k -> k -> Type) Source Comments # | |
Adjunction p q => Promonad (q :.: p :: k -> k -> Type) Source Comments # | |
(p ~ j, Profunctor p) => Promonad (Ran ('OP p) p :: k -> k -> Type) Source Comments # | |
(p ~ j, Profunctor p) => Promonad (Rift ('OP p) p :: k -> k -> Type) Source Comments # | |
Promonad (LTE :: FIN n -> FIN n -> Type) Source Comments # | |
CategoryOf k => Promonad (List :: LIST k -> LIST k -> Type) Source Comments # | |
Num a => Promonad (Mat :: MatK a -> MatK a -> Type) Source Comments # | |
PreorderOf k => Promonad (PoAsCat :: POCATK k -> POCATK k -> Type) Source Comments # | |
BiCCC k => Promonad (FreeCCC :: FK k -> FK k -> Type) Source Comments # | |
Monoidal k => Promonad (Strictified :: [k] -> [k] -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Strictified id :: forall (a :: [k]). Ob a => Strictified a a Source Comments # (.) :: forall (b :: [k]) (c :: [k]) (a :: [k]). Strictified b c -> Strictified a b -> Strictified a c Source Comments # | |
Promonad p => Promonad (Rev p :: REV j -> REV j -> Type) Source Comments # | |
Promonad c => Promonad (Op c :: OPPOSITE j -> OPPOSITE j -> Type) Source Comments # | |
Promonad p => Promonad (Coprod p :: COPROD j -> COPROD j -> Type) Source Comments # | |
Promonad p => Promonad (Prod p :: PROD j -> PROD j -> Type) Source Comments # | |
Promonad (Prof :: PROFK j k -> PROFK j k -> Type) Source Comments # | |
Rewrite g => Promonad (Free :: FREE g -> FREE g -> Type) Source Comments # | |
Promonad p => Promonad (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # | |
Promonad (Nat' :: NatK j k -> NatK j k -> Type) Source Comments # | |
Promonad (BiSimplex :: Simplex j k -> Simplex j k -> Type) Source Comments # | |
Promonad (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Comments # | |
Promonad (Prof :: (j +-> k) -> (j +-> k) -> Type) Source Comments # | |
Promonad (Nat :: (j -> Type) -> (j -> Type) -> Type) Source Comments # | |
Promonad (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Comments # | |
Promonad (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Comments # | |
Promonad p => Promonad (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # | |
(Promonad p, Promonad q) => Promonad (p :**: q :: (j1, j2) -> (j1, j2) -> Type) Source Comments # | The product promonad of promonads |
(CategoryOf k, Ob i, Ob j) => Promonad (Category :: PLAINK k i j -> PLAINK k i j -> Type) Source Comments # | |
CategoryOf k => Promonad (Mon2 :: MonK k i j -> MonK k i j -> Type) Source Comments # | |
Profunctor p => Promonad (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # | |
(Bicategory kk, Ob0 kk k) => Promonad (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # | |
Promonad (Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Bidiscrete id :: forall (a :: DiscreteK ob j k). Ob a => Bidiscrete a a Source Comments # (.) :: forall (b :: DiscreteK ob j k) (c0 :: DiscreteK ob j k) (a :: DiscreteK ob j k). Bidiscrete b c0 -> Bidiscrete a b -> Bidiscrete a c0 Source Comments # | |
CategoryOf (kk j k2) => Promonad (Co :: COK kk j k2 -> COK kk j k2 -> Type) Source Comments # | |
CategoryOf (kk k2 j) => Promonad (Op :: OPK kk j k2 -> OPK kk j k2 -> Type) Source Comments # | |
(CategoryOf (kk j k2), Bicategory kk) => Promonad (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Strictified id :: forall (a :: Path kk j k2). Ob a => Strictified a a Source Comments # (.) :: forall (b :: Path kk j k2) (c :: Path kk j k2) (a :: Path kk j k2). Strictified b c -> Strictified a b -> Strictified a c Source Comments # | |
Promonad ((~>) :: CAT (kk i j)) => Promonad (HomW :: HK kk i j -> HK kk i j -> Type) Source Comments # | |
Promonad ((~>) :: CAT (kk i j)) => Promonad (Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type) Source Comments # | |
CategoryOf (kk i j) => Promonad (W :: WKK kk i j -> WKK kk i j -> Type) Source Comments # | |
CategoryOf (kk i j) => Promonad (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # | |
IsOptic w c d => Promonad (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) Source Comments # | |
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Promonad (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Comments # | |
type family UN (w :: j -> k) (wa :: k) :: j Source Comments #
A helper type family to unwrap a wrapped kind. This is needed because the field selector functions of newtypes have to be lower case and therefore cannot be used at the type level.
Instances
type UN 'K ('K k :: KIND) Source Comments # | |
Defined in Proarrow.Category.Instance.Cat | |
type UN 'CNSTRNT ('CNSTRNT a :: CONSTRAINT) Source Comments # | |
Defined in Proarrow.Category.Instance.Constraint | |
type UN 'L ('L a :: LINEAR) Source Comments # | |
Defined in Proarrow.Category.Instance.Linear | |
type UN 'P ('P a :: POINTED) Source Comments # | |
Defined in Proarrow.Category.Instance.PointedHask | |
type UN ('M :: Nat -> MatK a) ('M n :: MatK a) Source Comments # | |
type UN ('PC :: j -> POCATK j) ('PC k :: POCATK j) Source Comments # | |
type UN ('R :: j -> REV j) ('R a :: REV j) Source Comments # | |
type UN ('OP :: j -> OPPOSITE j) ('OP k :: OPPOSITE j) Source Comments # | |
type UN ('F :: j -> FK j) ('F a :: FK j) Source Comments # | |
type UN ('COPR :: j -> COPROD j) ('COPR k :: COPROD j) Source Comments # | |
type UN ('PR :: j -> PROD j) ('PR k :: PROD j) Source Comments # | |
type UN ('T :: j -> THIN j) ('T a :: THIN j) Source Comments # | |
type UN ('CK :: j -> CATK j i) ('CK a :: CATK j i) Source Comments # | |
type UN ('BIPARA :: j -> BIPARAK j i) ('BIPARA a :: BIPARAK j i) Source Comments # | |
type UN ('F :: j -> FREE g) ('F k :: FREE g) Source Comments # | |
type UN ('KL :: j -> KLEISLI p) ('KL k :: KLEISLI p) Source Comments # | |
type UN ('SUB :: j -> SUBCAT ob) ('SUB k :: SUBCAT ob) Source Comments # | |
type UN ('MK :: j1 -> MonK j1 i j2) ('MK k :: MonK j1 i j2) Source Comments # | |
type UN ('L :: [k] -> LIST k) ('L as :: LIST k) Source Comments # | |
type UN ('PK :: (j +-> k) -> PROFK j k) ('PK p :: PROFK j k) Source Comments # | |
type UN ('NT :: (j -> k) -> NatK j k) ('NT f :: NatK j k) Source Comments # | |
type UN ('E :: kk k k -> ENDO kk k) ('E p :: ENDO kk k) Source Comments # | |
type UN ('CO :: kk j k2 -> COK kk j k2) ('CO k3 :: COK kk j k2) Source Comments # | |
type UN ('OP :: kk k2 j -> OPK kk j k2) ('OP k3 :: OPK kk j k2) Source Comments # | |
type UN ('HomK :: kk i j -> HK kk i j) ('HomK k3 :: HK kk i j) Source Comments # | |
type UN ('SUB :: kk i j -> SUBCAT tag kk i j) ('SUB p :: SUBCAT tag kk i j) Source Comments # | |
type UN ('WK :: kk i j -> WKK kk i j) ('WK p :: WKK kk i j) Source Comments # | |
type UN ('QK :: kk i j -> QKK kk i j) ('QK p :: QKK kk i j) Source Comments # | |