Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Core
Synopsis
- type PRO j k = j -> k -> Type
- 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
- type IsCategoryOf k (cat :: CAT k) = (CategoryOf k, cat ~ ((~>) :: CAT k), Promonad cat)
- 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
type IsCategoryOf k (cat :: CAT k) = (CategoryOf k, cat ~ ((~>) :: CAT k), Promonad cat) 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 Forget Source Comments # | |
Profunctor Simplex Source Comments # | |
Profunctor Unit Source Comments # | |
Profunctor Zero Source Comments # | |
Profunctor Free Source Comments # | |
Profunctor Forget Source Comments # | |
CategoryOf k => Profunctor (Terminate :: UNIT -> k -> Type) Source Comments # | |
Profunctor (Reader r :: Type -> Type -> Type) Source Comments # | |
Profunctor (Writer m :: Type -> Type -> Type) Source Comments # | |
CategoryOf k => Profunctor (Hom :: k -> k -> Type) Source Comments # | |
CategoryOf k => Profunctor (Id :: k -> k -> Type) Source Comments # | |
CategoryOf k => Profunctor (CoproductColimit d :: UNIT -> k -> Type) Source Comments # | |
Defined in Proarrow.Category.Colimit | |
HasInitialObject k => Profunctor (InitialLimit d :: UNIT -> k -> Type) Source Comments # | |
Defined in Proarrow.Category.Colimit | |
Representable d => Profunctor (EndLimit d :: Type -> UNIT -> 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 # | |
(CategoryOf j, CategoryOf k) => Profunctor (InitialProfunctor :: j -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Initial Methods dimap :: forall (c :: j) (a :: j) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> InitialProfunctor a b -> InitialProfunctor c d Source Comments # (\\) :: forall (a :: j) (b :: k) r. ((Ob a, Ob b) => r) -> InitialProfunctor a b -> r Source Comments # | |
(CategoryOf j, CategoryOf k) => Profunctor (TerminalProfunctor :: j -> k -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Terminal Methods dimap :: forall (c :: j) (a :: j) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> TerminalProfunctor a b -> TerminalProfunctor c d Source Comments # (\\) :: forall (a :: j) (b :: k) r. ((Ob a, Ob b) => r) -> TerminalProfunctor a b -> r Source Comments # | |
(HasBinaryProducts k, Representable d) => Profunctor (ProductLimit d :: k -> UNIT -> Type) Source Comments # | |
Defined in Proarrow.Category.Limit | |
HasTerminalObject k => Profunctor (TerminalLimit d :: k -> UNIT -> Type) Source Comments # | |
Defined in Proarrow.Category.Limit | |
Profunctor p => Profunctor (Fix p :: k -> k -> Type) Source Comments # | |
(Monoidal k, Ob s) => Profunctor (State s :: k -> 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 # | |
Functor f => Profunctor (Star f :: 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 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 # | |
(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.Rift 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 w, Profunctor p) => Profunctor (DayAct w p :: c -> d -> Type) Source Comments # | |
(CategoryOf c, CategoryOf d) => Profunctor (Optic w a b :: c -> d -> Type) Source Comments # | |
Monad m => Profunctor (Updating a b :: Type -> KlCat m -> Type) Source Comments # | |
CategoryOf k => Profunctor (Hom :: UNIT -> (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 # | |
CategoryOf k => Profunctor (List :: LIST k -> LIST k -> Type) Source Comments # | |
CategoryOf k => Profunctor (Rev :: REV k -> REV k -> Type) Source Comments # | |
CategoryOf k => Profunctor (Coprod :: COPROD k -> COPROD k -> Type) Source Comments # | |
Defined in Proarrow.Object.BinaryCoproduct | |
CategoryOf k => Profunctor (Prod :: PROD k -> PROD k -> Type) Source Comments # | |
Monoidal k => Profunctor (Strictified :: [k] -> [k] -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal 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 (Op p :: OPPOSITE k -> OPPOSITE j -> Type) Source Comments # | |
Defined in Proarrow.Category.Opposite | |
Profunctor p => Profunctor (Alt p :: PROD j -> COPROD k -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Applicative | |
Profunctor p => Profunctor (App p :: PROD j -> PROD k -> Type) Source Comments # | |
Profunctor List Source Comments # | |
Promonad p => Profunctor (KleisliFree p :: KLEISLI p -> k -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Kleisli | |
(Profunctor p, Profunctor q) => Profunctor (p :&&&: q :: (i, j) -> k -> Type) Source Comments # | |
Profunctor (Bidiscrete :: DiscreteK j k -> DiscreteK j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Bidiscrete Methods dimap :: forall (c :: DiscreteK j k) (a :: DiscreteK j k) (b :: DiscreteK j k) (d :: DiscreteK j k). (c ~> a) -> (b ~> d) -> Bidiscrete a b -> Bidiscrete c d Source Comments # (\\) :: forall (a :: DiscreteK j k) (b :: DiscreteK j k) r. ((Ob a, Ob b) => r) -> Bidiscrete a b -> r Source Comments # | |
Profunctor (Terminal :: TERMK 'T0 'T0 -> TERMK 'T0 'T0 -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Terminal | |
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 ((~>) :: CAT k) => Profunctor (Sub :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # | |
Profunctor (Prof :: PRO j k -> PRO 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 (Collage p :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # | |
Defined in Proarrow.Promonad.Collage | |
(Profunctor c, Profunctor d) => Profunctor (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Coproduct Methods dimap :: forall (c0 :: COPRODUCT j k) (a :: COPRODUCT j k) (b :: COPRODUCT j k) (d0 :: COPRODUCT j k). (c0 ~> a) -> (b ~> d0) -> (c :++: d) a b -> (c :++: d) c0 d0 Source Comments # (\\) :: forall (a :: COPRODUCT j k) (b :: COPRODUCT j k) r. ((Ob a, Ob b) => r) -> (c :++: d) a b -> r Source Comments # | |
(Profunctor p, Profunctor q) => Profunctor (p :**: q :: (k1, k2) -> (k1, k2) -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Product | |
(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 (Prof :: ProfK cl j k -> ProfK cl j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Prof | |
(Bicategory kk, Ob0 kk k) => Profunctor (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Endo | |
(CategoryOf (kk j k2), Ob0 kk j, Ob0 kk k2, Bicategory kk) => Profunctor (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory | |
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 | |
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 (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # | |
Defined in Proarrow.Category.Double.Quintet | |
(MonoidalProfunctor w, MonoidalAction m c, MonoidalAction m' d) => Profunctor (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Optic | |
(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 Simplex Source Comments # | |
Promonad Unit Source Comments # | |
Promonad Zero 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 # | |
(Monoidal k, Ob s) => Promonad (State s :: k -> k -> Type) Source Comments # | |
Monad m => Promonad (Star (Prelude m) :: Type -> Type -> Type) Source Comments # | |
Adjunction p q => Promonad (q :.: p :: k -> k -> Type) Source Comments # | |
CategoryOf k => Promonad (List :: LIST k -> LIST k -> Type) Source Comments # | |
CategoryOf k => Promonad (Rev :: REV k -> REV k -> Type) Source Comments # | |
CategoryOf k => Promonad (Coprod :: COPROD k -> COPROD k -> Type) Source Comments # | |
CategoryOf k => Promonad (Prod :: PROD k -> PROD k -> Type) Source Comments # | |
Monoidal k => Promonad (Strictified :: [k] -> [k] -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal 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 c => Promonad (Op c :: OPPOSITE k -> OPPOSITE k -> Type) Source Comments # | |
Promonad (Bidiscrete :: DiscreteK j k -> DiscreteK j k -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory.Bidiscrete Methods id :: forall (a :: DiscreteK j k). Ob a => Bidiscrete a a Source Comments # (.) :: forall (b :: DiscreteK j k) (c :: DiscreteK j k) (a :: DiscreteK j k). Bidiscrete b c -> Bidiscrete a b -> Bidiscrete a c Source Comments # | |
Promonad (Terminal :: TERMK 'T0 'T0 -> TERMK 'T0 'T0 -> 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 ((~>) :: CAT k) => Promonad (Sub :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # | |
Promonad (Prof :: PRO j k -> PRO 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 # | |
Profunctor p => Promonad (Collage p :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # | |
(IsCategoryOf j c, IsCategoryOf k d) => Promonad (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # | The coproduct category of the categories |
(Promonad p, Promonad q) => Promonad (p :**: q :: (k1, k2) -> (k1, k2) -> 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 # | |
Promonad (Prof :: ProfK cl j k -> ProfK cl j k -> Type) Source Comments # | |
(Bicategory kk, Ob0 kk k) => Promonad (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # | |
(CategoryOf (kk j k2), Ob0 kk j, Ob0 kk k2, Bicategory kk) => Promonad (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Comments # | |
Defined in Proarrow.Category.Bicategory 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 # | |
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 # | |
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 (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # | |
(MonoidalProfunctor w, MonoidalAction m c, MonoidalAction m' 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 ('R :: j -> REV j) ('R a :: REV j) Source Comments # | |
type UN ('OP :: j -> OPPOSITE j) ('OP k :: OPPOSITE 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 ('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 ('NT :: (j -> k) -> NatK j k) ('NT f :: NatK j k) Source Comments # | |
type UN ('PK :: PRO j k -> ProfK cl j k) ('PK p :: ProfK cl 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 ('SUB :: kk i j -> SUBCAT tag kk i j) ('SUB p :: SUBCAT tag kk i j) Source Comments # | |
type UN ('QK :: kk i j -> QKK kk i j) ('QK p :: QKK kk i j) Source Comments # | |