profunctors-5.2.1: Profunctors

Copyright(C) 2014-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Data.Profunctor.Monad

Description

 

Synopsis

Documentation

class ProfunctorFunctor t where #

Minimal complete definition

promap

Methods

promap :: Profunctor p => (p :-> q) -> t p :-> t q #

Laws:

promap f . promap g ≡ promap (f . g)
promap idid

Instances

ProfunctorFunctor Copastro # 

Methods

promap :: Profunctor p => (p :-> q) -> Copastro p :-> Copastro q #

ProfunctorFunctor Cotambara # 

Methods

promap :: Profunctor p => (p :-> q) -> Cotambara p :-> Cotambara q #

ProfunctorFunctor Pastro # 

Methods

promap :: Profunctor p => (p :-> q) -> Pastro p :-> Pastro q #

ProfunctorFunctor Tambara # 

Methods

promap :: Profunctor p => (p :-> q) -> Tambara p :-> Tambara q #

ProfunctorFunctor CopastroSum # 

Methods

promap :: Profunctor p => (p :-> q) -> CopastroSum p :-> CopastroSum q #

ProfunctorFunctor CotambaraSum # 

Methods

promap :: Profunctor p => (p :-> q) -> CotambaraSum p :-> CotambaraSum q #

ProfunctorFunctor PastroSum # 

Methods

promap :: Profunctor p => (p :-> q) -> PastroSum p :-> PastroSum q #

ProfunctorFunctor TambaraSum # 

Methods

promap :: Profunctor p => (p :-> q) -> TambaraSum p :-> TambaraSum q #

ProfunctorFunctor Environment # 

Methods

promap :: Profunctor p => (p :-> q) -> Environment p :-> Environment q #

ProfunctorFunctor Closure # 

Methods

promap :: Profunctor p => (p :-> q) -> Closure p :-> Closure q #

ProfunctorFunctor FreeTraversing # 

Methods

promap :: Profunctor p => (p :-> q) -> FreeTraversing p :-> FreeTraversing q #

ProfunctorFunctor CofreeTraversing # 
ProfunctorFunctor FreeMapping # 

Methods

promap :: Profunctor p => (p :-> q) -> FreeMapping p :-> FreeMapping q #

ProfunctorFunctor CofreeMapping # 

Methods

promap :: Profunctor p => (p :-> q) -> CofreeMapping p :-> CofreeMapping q #

ProfunctorFunctor Coyoneda # 

Methods

promap :: Profunctor p => (p :-> q) -> Coyoneda p :-> Coyoneda q #

ProfunctorFunctor Yoneda # 

Methods

promap :: Profunctor p => (p :-> q) -> Yoneda p :-> Yoneda q #

Functor f => ProfunctorFunctor (Cayley f) # 

Methods

promap :: Profunctor p => (p :-> q) -> Cayley f p :-> Cayley f q #

ProfunctorFunctor (Rift p) # 

Methods

promap :: Profunctor p => (p :-> q) -> Rift p p :-> Rift p q #

ProfunctorFunctor (Procompose p) # 

Methods

promap :: Profunctor p => (p :-> q) -> Procompose p p :-> Procompose p q #

ProfunctorFunctor (Ran p) # 

Methods

promap :: Profunctor p => (p :-> q) -> Ran p p :-> Ran p q #

ProfunctorFunctor (Product * * p) # 

Methods

promap :: Profunctor p => (p :-> q) -> Product * * p p :-> Product * * p q #

ProfunctorFunctor (Sum * * p) # 

Methods

promap :: Profunctor p => (p :-> q) -> Sum * * p p :-> Sum * * p q #

Functor f => ProfunctorFunctor (Tannen * * * f) # 

Methods

promap :: Profunctor p => (p :-> q) -> Tannen * * * f p :-> Tannen * * * f q #

class ProfunctorFunctor t => ProfunctorMonad t where #

Minimal complete definition

proreturn, projoin

Methods

proreturn :: Profunctor p => p :-> t p #

projoin :: Profunctor p => t (t p) :-> t p #

Instances

ProfunctorMonad Copastro # 
ProfunctorMonad Pastro # 
ProfunctorMonad CopastroSum # 
ProfunctorMonad PastroSum # 
ProfunctorMonad Environment # 
ProfunctorMonad FreeTraversing # 
ProfunctorMonad FreeMapping # 
ProfunctorMonad Coyoneda # 
ProfunctorMonad Yoneda # 
(Functor f, Monad f) => ProfunctorMonad (Cayley f) #

Cayley transforms Monads in Hask into monads on Prof

Methods

proreturn :: Profunctor p => p :-> Cayley f p #

projoin :: Profunctor p => Cayley f (Cayley f p) :-> Cayley f p #

Category * p => ProfunctorMonad (Procompose p) # 
ProfunctorMonad (Sum * * p) # 

Methods

proreturn :: Profunctor p => p :-> Sum * * p p #

projoin :: Profunctor p => Sum * * p (Sum * * p p) :-> Sum * * p p #

Monad f => ProfunctorMonad (Tannen * * * f) # 

Methods

proreturn :: Profunctor p => p :-> Tannen * * * f p #

projoin :: Profunctor p => Tannen * * * f (Tannen * * * f p) :-> Tannen * * * f p #

class ProfunctorFunctor t => ProfunctorComonad t where #

Minimal complete definition

proextract, produplicate

Methods

proextract :: Profunctor p => t p :-> p #

produplicate :: Profunctor p => t p :-> t (t p) #

Instances

ProfunctorComonad Cotambara # 
ProfunctorComonad Tambara # 
ProfunctorComonad CotambaraSum # 
ProfunctorComonad TambaraSum # 
ProfunctorComonad Closure # 
ProfunctorComonad CofreeTraversing # 
ProfunctorComonad CofreeMapping # 
ProfunctorComonad Coyoneda # 
ProfunctorComonad Yoneda # 
Comonad f => ProfunctorComonad (Cayley f) #

Cayley transforms Comonads in Hask into comonads on Prof

Methods

proextract :: Profunctor p => Cayley f p :-> p #

produplicate :: Profunctor p => Cayley f p :-> Cayley f (Cayley f p) #

Category * p => ProfunctorComonad (Rift p) # 

Methods

proextract :: Profunctor p => Rift p p :-> p #

produplicate :: Profunctor p => Rift p p :-> Rift p (Rift p p) #

Category * p => ProfunctorComonad (Ran p) # 

Methods

proextract :: Profunctor p => Ran p p :-> p #

produplicate :: Profunctor p => Ran p p :-> Ran p (Ran p p) #

ProfunctorComonad (Product * * p) # 

Methods

proextract :: Profunctor p => Product * * p p :-> p #

produplicate :: Profunctor p => Product * * p p :-> Product * * p (Product * * p p) #

Comonad f => ProfunctorComonad (Tannen * * * f) # 

Methods

proextract :: Profunctor p => Tannen * * * f p :-> p #

produplicate :: Profunctor p => Tannen * * * f p :-> Tannen * * * f (Tannen * * * f p) #