Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Core
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 #
Minimal complete definition
Methods
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 Methods 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 Methods 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 (Cont r :: Type -> Type -> Type) Source Comments # | |
CategoryOf k => Profunctor (Initiate :: k -> VOID -> 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 Methods 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 Methods 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 Methods 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 Methods 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 Methods 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 Methods 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 Methods 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 Methods 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 # | |
(BiCCC k, Ob r) => Profunctor (Reader r :: k -> k -> Type) Source Comments # | |
(Monoidal k, Ob s) => Profunctor (State s :: k -> k -> Type) Source Comments # | |
(BiCCC k, Ob m) => Profunctor (Writer m :: 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 # | |
(CategoryOf j, CategoryOf k, Profunctor p) => Profunctor (UnOp p :: k -> j -> 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 Methods 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 # | |
(CategoryOf c, CategoryOf d) => Profunctor (Optic w a b :: c -> d -> 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 Methods 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 # | |
Profunctor DualUnit 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, Profunctor q) => Profunctor (p :|||: q :: j1 -> COPRODUCT i j2 -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Cat | |
(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 Methods 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 # | |
TracedMonoidal k => Profunctor (IntConstruction :: INT k -> INT k -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.IntConstruction | |
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 Methods 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 Methods 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 # | |
Defined in Proarrow.Category.Opposite | |
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 # | |
(CategoryOf j, CategoryOf k) => Profunctor (LftCat :: COPRODUCT j k -> j -> Type) Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (RgtCat :: COPRODUCT j k -> k -> 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 # | |
Defined in Proarrow.Category.Instance.Cat | |
(Profunctor p, Profunctor q) => Profunctor (p :&&&: q :: (i, j) -> k -> Type) Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (DistribDual :: (OPPOSITE j, OPPOSITE k) -> OPPOSITE (j, k) -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Cat Methods dimap :: forall (c :: (OPPOSITE j, OPPOSITE k)) (a :: (OPPOSITE j, OPPOSITE k)) (b :: OPPOSITE (j, k)) (d :: OPPOSITE (j, k)). (c ~> a) -> (b ~> d) -> DistribDual a b -> DistribDual c d Source Comments # (\\) :: forall (a :: (OPPOSITE j, OPPOSITE k)) (b :: OPPOSITE (j, k)) r. ((Ob a, Ob b) => r) -> DistribDual a b -> r Source Comments # | |
Profunctor (Prof :: PROFK j k -> PROFK j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Prof | |
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 Methods 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 Methods 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 # | |
Defined in Proarrow.Category.Instance.Nat | |
Profunctor p => Profunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Sub | |
(Profunctor p, Profunctor q) => Profunctor (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Comments # | |
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 Comments # (\\) :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) r. ((Ob a, Ob b) => r) -> (p :++: q) a b -> r 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 Methods 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 # | |
Defined in Proarrow.Category.Monoidal.Endo | |
Profunctor (Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Bidiscrete Methods 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 | |
IsChart m c d => Profunctor (ChartCat :: CHART m c d -> CHART m c d -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Optic | |
IsOptic w c d => Profunctor (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Optic | |
Profunctor ((~>) :: CAT (kk i j)) => Profunctor (HomW :: HK kk i j -> HK kk i j -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Hom | |
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 Methods dimap :: forall (c :: SUBCAT tag kk i j) (a :: SUBCAT tag kk i j) (b :: SUBCAT tag kk i j) (d :: SUBCAT tag kk i j). (c ~> a) -> (b ~> d) -> Sub a b -> Sub c d Source Comments # (\\) :: forall (a :: SUBCAT tag kk i j) (b :: SUBCAT tag kk i j) r. ((Ob a, Ob b) => r) -> Sub a b -> r Source Comments # | |
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 | |
(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 Methods 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 Methods 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 #
Methods
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 Methods 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 Methods id :: Ob a => ComonoidAsCat w a a Source Comments # (.) :: ComonoidAsCat w b c -> ComonoidAsCat w a b -> ComonoidAsCat w a c Source Comments # | |
Promonad (Cont r :: 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 Methods 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 # | |
(BiCCC k, Ob r) => Promonad (Reader r :: k -> k -> Type) Source Comments # | |
(Monoidal k, Ob s) => Promonad (State s :: k -> k -> Type) Source Comments # | |
(BiCCC k, Monoid m) => Promonad (Writer m :: 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 # | |
TracedMonoidal k => Promonad (IntConstruction :: INT k -> INT k -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.IntConstruction Methods id :: forall (a :: INT k). Ob a => IntConstruction a a Source Comments # (.) :: forall (b :: INT k) (c :: INT k) (a :: INT k). IntConstruction b c -> IntConstruction a b -> IntConstruction a c 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 Methods 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 # | |
Defined in Proarrow.Category.Instance.Nat | |
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 :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> 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 Methods 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 Methods 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 # | |
IsChart m c d => Promonad (ChartCat :: CHART m c d -> CHART m c d -> Type) Source Comments # | |
IsOptic w c d => Promonad (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) 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 # | |
(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 # | |