| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow
Synopsis
- module Proarrow.Category
- module Proarrow.Functor
- module Proarrow.Monoid
- module Proarrow.Object
- module Proarrow.Profunctor
- module Proarrow.Universal
- class Profunctor p => Promonad (p :: k +-> k) where
Documentation
module Proarrow.Category
module Proarrow.Functor
module Proarrow.Monoid
module Proarrow.Object
module Proarrow.Profunctor
module Proarrow.Universal
class Profunctor p => Promonad (p :: k +-> k) where Source Github #
A promonad is a category-like profunctor with identity morphisms and composition.
This is also known as a category structure, or an identity-on-objects functor.
Laws:
Methods
id :: forall (a :: k). Ob a => p a a Source Github #
Identity morphisms.
(.) :: forall (b :: k) (c :: k) (a :: k). p b c -> p a b -> p a c infixr 9 Source Github #
Composition (note the parameter order matches function composition).
Instances
| Promonad Simplex Source Github # | |
| Promonad ZX Source Github # | |
| Promonad Booleans Source Github # | |
| Promonad Cat Source Github # | |
| Promonad (:-) Source Github # | |
Defined in Proarrow.Category.Instance.Constraint Methods id :: forall (a :: CONSTRAINT). Ob a => a :- a Source Github # (.) :: forall (b :: CONSTRAINT) (c :: CONSTRAINT) (a :: CONSTRAINT). (b :- c) -> (a :- b) -> a :- c Source Github # | |
| Promonad GTE Source Github # | |
| Promonad FinRel Source Github # | |
| Promonad FinSet Source Github # | |
| Promonad Linear Source Github # | |
| Promonad Pointed Source Github # | |
| Promonad Zero Source Github # | |
| Promonad Dot Source Github # | |
| Promonad Unit Source Github # | |
| Promonad SymRefl Source Github # | |
| Monad m => Promonad (Kleisli m :: Type -> Type -> Type) Source Github # | |
| Comonoid w => Promonad (ComonoidAsCat w :: Type -> Type -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Nat Methods id :: Ob a => ComonoidAsCat w a a Source Github # (.) :: ComonoidAsCat w b c -> ComonoidAsCat w a b -> ComonoidAsCat w a c Source Github # | |
| Arrow arr => Promonad (Arr arr :: Type -> Type -> Type) Source Github # | |
| CategoryOf k => Promonad (Id :: k -> k -> Type) Source Github # | |
| Promonad (->) Source Github # | |
| Promonad p => Promonad (Fix p :: k -> k -> Type) Source Github # | |
| Profunctor p => Promonad (FreePromonad p :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Free Methods id :: forall (a :: k). Ob a => FreePromonad p a a Source Github # (.) :: forall (b :: k) (c :: k) (a :: k). FreePromonad p b c -> FreePromonad p a b -> FreePromonad p a c Source Github # | |
| CategoryOf k => Promonad (TerminalProfunctor :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Terminal Methods id :: forall (a :: k). Ob a => TerminalProfunctor a a Source Github # (.) :: forall (b :: k) (c :: k) (a :: k). TerminalProfunctor b c -> TerminalProfunctor a b -> TerminalProfunctor a c Source Github # | |
| CategoryOf k => Promonad (Cont r :: k -> k -> Type) Source Github # | |
| (Comonoid r, Monoidal k) => Promonad (Reader ('OP r) :: k -> k -> Type) Source Github # | |
| (Monoid w, Monoidal k) => Promonad (Writer w :: k -> k -> Type) Source Github # | |
| Adjunction p => Promonad (Adj p :: Type -> Type -> Type) Source Github # | |
| Promonad (Costar ((,) Int)) Source Github # | |
| Monad m => Promonad (Star (Prelude m) :: Type -> Type -> Type) Source Github # | |
| Promonad p => Promonad (FromProfunctor p :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Functor Methods id :: forall (a :: k). Ob a => FromProfunctor p a a Source Github # (.) :: forall (b :: k) (c :: k) (a :: k). FromProfunctor p b c -> FromProfunctor p a b -> FromProfunctor p a c Source Github # | |
| (Monoid c, CategoryOf k) => Promonad (HaskValue c :: k -> k -> Type) Source Github # | |
| Promonad p => Promonad (Wrapped p :: k -> k -> Type) Source Github # | |
| (Comonoid r, SelfAction k, Strong k p, Promonad p) => Promonad (ReaderT ('OP r) p :: k -> k -> Type) Source Github # | |
| (Ob s, SelfAction k, Strong k p, Promonad p) => Promonad (StateT s p :: k -> k -> Type) Source Github # | |
| (Monoid w, SelfAction k, Strong k p, Promonad p) => Promonad (WriterT w p :: k -> k -> Type) Source Github # | |
| Proadjunction p q => Promonad (q :.: p :: k -> k -> Type) Source Github # | |
| (p ~ j, Profunctor p) => Promonad (Ran ('OP j) p :: k -> k -> Type) Source Github # | |
| (p ~ j, Profunctor p) => Promonad (Rift ('OP j) p :: k -> k -> Type) Source Github # | |
| HasPushouts k => Promonad (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # | |
| Promonad (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Discrete Methods id :: forall (a :: CODISCRETE k). Ob a => Codiscrete a a Source Github # (.) :: forall (b :: CODISCRETE k) (c :: CODISCRETE k) (a :: CODISCRETE k). Codiscrete b c -> Codiscrete a b -> Codiscrete a c Source Github # | |
| Promonad (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # | |
| CategoryOf k => Promonad (Fam :: FAM k -> FAM k -> Type) Source Github # | |
| Promonad (LTE :: FIN n -> FIN n -> Type) Source Github # | |
| TracedMonoidal k => Promonad (IntConstruction :: INT k -> INT k -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.IntConstruction Methods id :: forall (a :: INT k). Ob a => IntConstruction a a Source Github # (.) :: forall (b :: INT k) (c :: INT k) (a :: INT k). IntConstruction b c -> IntConstruction a b -> IntConstruction a c Source Github # | |
| Num a => Promonad (Mat :: MatK a -> MatK a -> Type) Source Github # | |
| HasPullbacks k => Promonad (Span :: SPAN k -> SPAN k -> Type) Source Github # | |
| Monoidal k => Promonad (Strictified :: [k] -> [k] -> Type) Source Github # | |
Defined in Proarrow.Category.Monoidal.Strictified Methods id :: forall (a :: [k]). Ob a => Strictified a a Source Github # (.) :: forall (b :: [k]) (c :: [k]) (a :: [k]). Strictified b c -> Strictified a b -> Strictified a c Source Github # | |
| Promonad p => Promonad (Rev p :: REV j -> REV j -> Type) Source Github # | |
| Promonad c => Promonad (Op c :: OPPOSITE j -> OPPOSITE j -> Type) Source Github # | |
| Promonad p => Promonad (Coprod p :: COPROD j -> COPROD j -> Type) Source Github # | |
| Promonad p => Promonad (Prod p :: PROD j -> PROD j -> Type) Source Github # | |
| Promonad p => Promonad (List p :: LIST j -> LIST j -> Type) Source Github # | |
| Promonad (Adj :: ADJK a b -> ADJK a b -> Type) Source Github # | |
| Promonad (Prof :: PROFK j k -> PROFK j k -> Type) Source Github # | |
| Promonad p => Promonad (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Github # | |
| Promonad (Nat' :: (j .-> k) -> (j .-> k) -> Type) Source Github # | |
| Promonad (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Github # | |
| Promonad (Prof :: (j +-> k) -> (j +-> k) -> Type) Source Github # | |
| Promonad (Nat :: (j -> Type) -> (j -> Type) -> Type) Source Github # | |
| Promonad (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Github # | |
| Promonad (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Github # | |
| Promonad p => Promonad (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Github # | |
| Promonad (Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Coyoneda Methods id :: forall (a :: j +-> k). Ob a => Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| (MonoidalAction m j, MonoidalAction m k) => Promonad (Costar (Tambara m :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.PastroTambara Methods id :: forall (a :: j +-> k). Ob a => Costar (Tambara m :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Tambara m :: (j +-> k) -> k -> j -> Type) b c -> Costar (Tambara m :: (j +-> k) -> k -> j -> Type) a b -> Costar (Tambara m :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| Profunctor p => Promonad (Costar ((:*:) p) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
| Promonad (Costar (Yoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Yoneda Methods id :: forall (a :: j +-> k). Ob a => Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| (MonoidalAction m j, MonoidalAction m k) => Promonad (Star (Pastro m :: (j +-> k) -> k -> j -> Type) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.PastroTambara Methods id :: forall (a :: j +-> k). Ob a => Star (Pastro m :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Star (Pastro m :: (j +-> k) -> k -> j -> Type) b c -> Star (Pastro m :: (j +-> k) -> k -> j -> Type) a b -> Star (Pastro m :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| (Comonoid r, Monoidal k) => Promonad (Star (ReaderT ('OP r)) :: (k +-> k) -> (k +-> k) -> Type) Source Github # | ReaderT is a monad on profunctors, i.e. we have |
| (Monoid w, Monoidal k) => Promonad (Star (WriterT w) :: (k +-> k) -> (k +-> k) -> Type) Source Github # | WriterT is a monad on profunctors, i.e. we have |
| Procomonad j => Promonad (Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) :: (k -> i -> Type) -> (i +-> k) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Ran Methods id :: forall (a :: k -> i -> Type). Ob a => Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) a a Source Github # (.) :: forall (b :: k -> i -> Type) (c :: k -> i -> Type) (a :: k -> i -> Type). Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) b c -> Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) a b -> Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) a c Source Github # | |
| Profunctor p => Promonad (Star ((:+:) p) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # | |
| Promonad (Star (Coyoneda :: (j +-> k) -> k -> j -> Type) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Coyoneda Methods id :: forall (a :: k -> j -> Type). Ob a => Star (Coyoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: k -> j -> Type) (c :: k -> j -> Type) (a :: k -> j -> Type). Star (Coyoneda :: (j +-> k) -> k -> j -> Type) b c -> Star (Coyoneda :: (j +-> k) -> k -> j -> Type) a b -> Star (Coyoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| Promonad (Star (Yoneda :: (j +-> k) -> k -> j -> Type) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Yoneda Methods id :: forall (a :: k -> j -> Type). Ob a => Star (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: k -> j -> Type) (c :: k -> j -> Type) (a :: k -> j -> Type). Star (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Star (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Star (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| Procomonad j2 => Promonad (Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) :: (k -> j1 -> Type) -> (j1 +-> k) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Rift Methods id :: forall (a :: k -> j1 -> Type). Ob a => Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) a a Source Github # (.) :: forall (b :: k -> j1 -> Type) (c :: k -> j1 -> Type) (a :: k -> j1 -> Type). Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) b c -> Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) a b -> Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) a c Source Github # | |
| Promonad (Star (FreePromonad :: (k -> k -> Type) -> k -> k -> Type) :: (k -> k -> Type) -> (k -> k -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Free Methods id :: forall (a :: k -> k -> Type). Ob a => Star (FreePromonad :: (k -> k -> Type) -> k -> k -> Type) a a Source Github # (.) :: forall (b :: k -> k -> Type) (c :: k -> k -> Type) (a :: k -> k -> Type). Star (FreePromonad :: (k -> k -> Type) -> k -> k -> Type) b c -> Star (FreePromonad :: (k -> k -> Type) -> k -> k -> Type) a b -> Star (FreePromonad :: (k -> k -> Type) -> k -> k -> Type) a c Source Github # | |
| Monoidal k => Promonad (Star (Ap :: (k -> Type) -> k -> Type) :: (k -> Type) -> (k -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Free Methods id :: forall (a :: k -> Type). Ob a => Star (Ap :: (k -> Type) -> k -> Type) a a Source Github # (.) :: forall (b :: k -> Type) (c :: k -> Type) (a :: k -> Type). Star (Ap :: (k -> Type) -> k -> Type) b c -> Star (Ap :: (k -> Type) -> k -> Type) a b -> Star (Ap :: (k -> Type) -> k -> Type) a c Source Github # | |
| (Applicative f, Promonad p) => Promonad (Ap p :: AP f k -> AP f k -> Type) Source Github # | |
| Monoid m => Promonad (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # | |
| (Promonad p, Promonad q) => Promonad (p :++: q :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github # | The coproduct of two promonads. |
| (Promonad p, Promonad q) => Promonad (p :**: q :: (j1, j2) -> (j1, j2) -> Type) Source Github # | The product promonad of promonads |
| (CategoryOf k, Ob i, Ob j) => Promonad (Category :: PLAINK k i j -> PLAINK k i j -> Type) Source Github # | |
| CategoryOf k => Promonad (Mon2 :: MonK k i j -> MonK k i j -> Type) Source Github # | |
| SelfAction k => Promonad (StT :: STT' k i j -> STT' k i j -> Type) Source Github # | |
| Profunctor p => Promonad (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Github # | |
| Adjunction adj => Promonad (Duploid :: DUPLOID adj -> DUPLOID adj -> Type) Source Github # | ATTENTION: a duploid is not associative, so not really a promonad/category! |
| Ok cs p => Promonad (Free :: FREE cs p -> FREE cs p -> Type) Source Github # | |
| ThinProfunctor p => Promonad (Graph :: GRAPH p -> GRAPH p -> Type) Source Github # | |
| (Bicategory kk, Ob0 kk k) => Promonad (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Github # | |
| (CategoryOf j, CategoryOf k) => Promonad (Optic_ :: OPTIC j k c -> OPTIC j k c -> Type) Source Github # | |
| Promonad (Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type) Source Github # | |
Defined in Proarrow.Category.Bicategory.Bidiscrete Methods id :: forall (a :: DiscreteK ob j k). Ob a => Bidiscrete a a Source Github # (.) :: 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 Github # | |
| CategoryOf (kk j k2) => Promonad (Co :: COK kk j k2 -> COK kk j k2 -> Type) Source Github # | |
| CategoryOf (kk k2 j) => Promonad (Op :: OPK kk j k2 -> OPK kk j k2 -> Type) Source Github # | |
| (CategoryOf (kk j k2), Bicategory kk) => Promonad (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Github # | |
Defined in Proarrow.Category.Bicategory.Strictified Methods id :: forall (a :: Path kk j k2). Ob a => Strictified a a Source Github # (.) :: 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 Github # | |
| Promonad ((~>) :: CAT (kk i j)) => Promonad (HomW :: HK kk i j -> HK kk i j -> Type) Source Github # | |
| Promonad ((~>) :: CAT (kk i j)) => Promonad (Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type) Source Github # | |
| (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 Github # | |