proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Promonad

Documentation

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

Instances details
Promonad Booleans Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

id :: forall (a :: BOOL). Ob a => Booleans a a Source Comments #

(.) :: forall (b :: BOOL) (c :: BOOL) (a :: BOOL). Booleans b c -> Booleans a b -> Booleans a c Source Comments #

Promonad Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

id :: forall (a :: KIND). Ob a => Cat a a Source Comments #

(.) :: forall (b :: KIND) (c :: KIND) (a :: KIND). Cat b c -> Cat a b -> Cat a c Source Comments #

Promonad (:-) Source Comments # 
Instance details

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 # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

id :: forall (a :: LINEAR). Ob a => Linear a a Source Comments #

(.) :: forall (b :: LINEAR) (c :: LINEAR) (a :: LINEAR). Linear b c -> Linear a b -> Linear a c Source Comments #

Promonad Simplex Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

id :: forall (a :: Nat). Ob a => Simplex a a Source Comments #

(.) :: forall (b :: Nat) (c :: Nat) (a :: Nat). Simplex b c -> Simplex a b -> Simplex a c Source Comments #

Promonad Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

id :: forall (a :: UNIT). Ob a => Unit a a Source Comments #

(.) :: forall (b :: UNIT) (c :: UNIT) (a :: UNIT). Unit b c -> Unit a b -> Unit a c Source Comments #

Promonad Zero Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Zero

Methods

id :: forall (a :: VOID). Ob a => Zero a a Source Comments #

(.) :: forall (b :: VOID) (c :: VOID) (a :: VOID). Zero b c -> Zero a b -> Zero a c Source Comments #

Promonad (Reader r :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

id :: Ob a => Reader r a a Source Comments #

(.) :: Reader r b c -> Reader r a b -> Reader r a c Source Comments #

Monoid m => Promonad (Writer m :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

id :: Ob a => Writer m a a Source Comments #

(.) :: Writer m b c -> Writer m a b -> Writer m a c Source Comments #

CategoryOf k => Promonad (Id :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Identity

Methods

id :: forall (a :: k). Ob a => Id a a Source Comments #

(.) :: forall (b :: k) (c :: k) (a :: k). Id b c -> Id a b -> Id a c Source Comments #

Promonad (->) Source Comments # 
Instance details

Defined in Proarrow.Core

Methods

id :: Ob a => a -> a Source Comments #

(.) :: (b -> c) -> (a -> b) -> a -> c Source Comments #

(Monoidal k, Ob s) => Promonad (State s :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.State

Methods

id :: forall (a :: k). Ob a => State s a a Source Comments #

(.) :: forall (b :: k) (c :: k) (a :: k). State s b c -> State s a b -> State s a c Source Comments #

Monad m => Promonad (Star (Prelude m) :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

id :: Ob a => Star (Prelude m) a a Source Comments #

(.) :: Star (Prelude m) b c -> Star (Prelude m) a b -> Star (Prelude m) a c Source Comments #

Adjunction p q => Promonad (q :.: p :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

id :: forall (a :: k). Ob a => (q :.: p) a a Source Comments #

(.) :: forall (b :: k) (c :: k) (a :: k). (q :.: p) b c -> (q :.: p) a b -> (q :.: p) a c Source Comments #

CategoryOf k => Promonad (List :: LIST k -> LIST k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.List

Methods

id :: forall (a :: LIST k). Ob a => List a a Source Comments #

(.) :: forall (b :: LIST k) (c :: LIST k) (a :: LIST k). List b c -> List a b -> List a c Source Comments #

CategoryOf k => Promonad (Rev :: REV k -> REV k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

Methods

id :: forall (a :: REV k). Ob a => Rev a a Source Comments #

(.) :: forall (b :: REV k) (c :: REV k) (a :: REV k). Rev b c -> Rev a b -> Rev a c Source Comments #

CategoryOf k => Promonad (Coprod :: COPROD k -> COPROD k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

id :: forall (a :: COPROD k). Ob a => Coprod a a Source Comments #

(.) :: forall (b :: COPROD k) (c :: COPROD k) (a :: COPROD k). Coprod b c -> Coprod a b -> Coprod a c Source Comments #

CategoryOf k => Promonad (Prod :: PROD k -> PROD k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

id :: forall (a :: PROD k). Ob a => Prod a a Source Comments #

(.) :: forall (b :: PROD k) (c :: PROD k) (a :: PROD k). Prod b c -> Prod a b -> Prod a c Source Comments #

Monoidal k => Promonad (Strictified :: [k] -> [k] -> Type) Source Comments # 
Instance details

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 # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

id :: forall (a :: OPPOSITE k). Ob a => Op c a a Source Comments #

(.) :: forall (b :: OPPOSITE k) (c0 :: OPPOSITE k) (a :: OPPOSITE k). Op c b c0 -> Op c a b -> Op c a c0 Source Comments #

Promonad (Bidiscrete :: DiscreteK j k -> DiscreteK j k -> Type) Source Comments # 
Instance details

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 # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Methods

id :: forall (a :: TERMK 'T0 'T0). Ob a => Terminal a a Source Comments #

(.) :: forall (b :: TERMK 'T0 'T0) (c :: TERMK 'T0 'T0) (a :: TERMK 'T0 'T0). Terminal b c -> Terminal a b -> Terminal a c Source Comments #

Rewrite g => Promonad (Free :: FREE g -> FREE g -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

Methods

id :: forall (a :: FREE g). Ob a => Free a a Source Comments #

(.) :: forall (b :: FREE g) (c :: FREE g) (a :: FREE g). Free b c -> Free a b -> Free a c Source Comments #

Promonad p => Promonad (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

id :: forall (a :: KLEISLI p). Ob a => Kleisli a a Source Comments #

(.) :: forall (b :: KLEISLI p) (c :: KLEISLI p) (a :: KLEISLI p). Kleisli b c -> Kleisli a b -> Kleisli a c Source Comments #

Promonad (Nat' :: NatK j k -> NatK j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: NatK j k). Ob a => Nat' a a Source Comments #

(.) :: forall (b :: NatK j k) (c :: NatK j k) (a :: NatK j k). Nat' b c -> Nat' a b -> Nat' a c Source Comments #

Promonad ((~>) :: CAT k) => Promonad (Sub :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

id :: forall (a :: SUBCAT ob). Ob a => Sub a a Source Comments #

(.) :: forall (b :: SUBCAT ob) (c :: SUBCAT ob) (a :: SUBCAT ob). Sub b c -> Sub a b -> Sub a c Source Comments #

Promonad (Prof :: PRO j k -> PRO j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Prof

Methods

id :: forall (a :: PRO j k). Ob a => Prof a a Source Comments #

(.) :: forall (b :: PRO j k) (c :: PRO j k) (a :: PRO j k). Prof b c -> Prof a b -> Prof a c Source Comments #

Promonad (Nat :: (j -> Type) -> (j -> Type) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: j -> Type). Ob a => Nat a a Source Comments #

(.) :: forall (b :: j -> Type) (c :: j -> Type) (a :: j -> Type). Nat b c -> Nat a b -> Nat a c Source Comments #

Promonad (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: k1 -> k2 -> k3 -> k4 -> Type). Ob a => Nat a a Source Comments #

(.) :: forall (b :: k1 -> k2 -> k3 -> k4 -> Type) (c :: k1 -> k2 -> k3 -> k4 -> Type) (a :: k1 -> k2 -> k3 -> k4 -> Type). Nat b c -> Nat a b -> Nat a c Source Comments #

Promonad (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: k1 -> k2 -> k3 -> Type). Ob a => Nat a a Source Comments #

(.) :: forall (b :: k1 -> k2 -> k3 -> Type) (c :: k1 -> k2 -> k3 -> Type) (a :: k1 -> k2 -> k3 -> Type). Nat b c -> Nat a b -> Nat a c Source Comments #

Profunctor p => Promonad (Collage p :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Collage

Methods

id :: forall (a :: COPRODUCT j k). Ob a => Collage p a a Source Comments #

(.) :: forall (b :: COPRODUCT j k) (c :: COPRODUCT j k) (a :: COPRODUCT j k). Collage p b c -> Collage p a b -> Collage p a c 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 c and d.

Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

id :: forall (a :: COPRODUCT j k). Ob a => (c :++: d) a a Source Comments #

(.) :: forall (b :: COPRODUCT j k) (c0 :: COPRODUCT j k) (a :: COPRODUCT j k). (c :++: d) b c0 -> (c :++: d) a b -> (c :++: d) a c0 Source Comments #

(Promonad p, Promonad q) => Promonad (p :**: q :: (k1, k2) -> (k1, k2) -> Type) Source Comments #

The product promonad of promonads p and q.

Instance details

Defined in Proarrow.Category.Instance.Product

Methods

id :: forall (a :: (k1, k2)). Ob a => (p :**: q) a a Source Comments #

(.) :: forall (b :: (k1, k2)) (c :: (k1, k2)) (a :: (k1, k2)). (p :**: q) b c -> (p :**: q) a b -> (p :**: q) a c Source Comments #

(CategoryOf k, Ob i, Ob j) => Promonad (Category :: PLAINK k i j -> PLAINK k i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.CategoryAsBi

Methods

id :: forall (a :: PLAINK k i j). Ob a => Category a a Source Comments #

(.) :: forall (b :: PLAINK k i j) (c :: PLAINK k i j) (a :: PLAINK k i j). Category b c -> Category a b -> Category a c Source Comments #

CategoryOf k => Promonad (Mon2 :: MonK k i j -> MonK k i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.MonoidalAsBi

Methods

id :: forall (a :: MonK k i j). Ob a => Mon2 a a Source Comments #

(.) :: forall (b :: MonK k i j) (c :: MonK k i j) (a :: MonK k i j). Mon2 b c -> Mon2 a b -> Mon2 a c Source Comments #

Promonad (Prof :: ProfK cl j k -> ProfK cl j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

id :: forall (a :: ProfK cl j k). Ob a => Prof a a Source Comments #

(.) :: forall (b :: ProfK cl j k) (c :: ProfK cl j k) (a :: ProfK cl j k). Prof b c -> Prof a b -> Prof a c Source Comments #

(Bicategory kk, Ob0 kk k) => Promonad (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

id :: forall (a :: ENDO kk k). Ob a => Endo a a Source Comments #

(.) :: forall (b :: ENDO kk k) (c :: ENDO kk k) (a :: ENDO kk k). Endo b c -> Endo a b -> Endo a c 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 # 
Instance details

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 # 
Instance details

Defined in Proarrow.Category.Bicategory.Co

Methods

id :: forall (a :: COK kk j k2). Ob a => Co a a Source Comments #

(.) :: forall (b :: COK kk j k2) (c :: COK kk j k2) (a :: COK kk j k2). Co b c -> Co a b -> Co a c Source Comments #

CategoryOf (kk k2 j) => Promonad (Op :: OPK kk j k2 -> OPK kk j k2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Op

Methods

id :: forall (a :: OPK kk j k2). Ob a => Op a a Source Comments #

(.) :: forall (b :: OPK kk j k2) (c :: OPK kk j k2) (a :: OPK kk j k2). Op b c -> Op a b -> Op a c Source Comments #

Promonad ((~>) :: CAT (kk i j)) => Promonad (Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Sub

Methods

id :: forall (a :: SUBCAT tag kk i j). Ob a => Sub a a Source Comments #

(.) :: forall (b :: SUBCAT tag kk i j) (c :: SUBCAT tag kk i j) (a :: SUBCAT tag kk i j). Sub b c -> Sub a b -> Sub a c Source Comments #

CategoryOf (kk i j) => Promonad (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Double.Quintet

Methods

id :: forall (a :: QKK kk i j). Ob a => Q2 a a Source Comments #

(.) :: forall (b :: QKK kk i j) (c :: QKK kk i j) (a :: QKK kk i j). Q2 b c -> Q2 a b -> Q2 a c Source Comments #

(MonoidalProfunctor w, MonoidalAction m c, MonoidalAction m' d) => Promonad (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

id :: forall (a :: OPTIC w c d). Ob a => OpticCat a a Source Comments #

(.) :: forall (b :: OPTIC w c d) (c0 :: OPTIC w c d) (a :: OPTIC w c d). OpticCat b c0 -> OpticCat a b -> OpticCat a c0 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 # 
Instance details

Defined in Proarrow.Category.Bicategory.Product

Methods

id :: forall (a :: PRODK jj kk ik jl). Ob a => Prod a a Source Comments #

(.) :: forall (b :: PRODK jj kk ik jl) (c :: PRODK jj kk ik jl) (a :: PRODK jj kk ik jl). Prod b c -> Prod a b -> Prod a c Source Comments #