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 Source #

Minimal complete definition

promap

Methods

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

Laws:

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

Instances

ProfunctorFunctor Copastro Source # 

Methods

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

ProfunctorFunctor Cotambara Source # 

Methods

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

ProfunctorFunctor Pastro Source # 

Methods

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

ProfunctorFunctor Tambara Source # 

Methods

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

ProfunctorFunctor CopastroSum Source # 

Methods

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

ProfunctorFunctor CotambaraSum Source # 
ProfunctorFunctor PastroSum Source # 

Methods

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

ProfunctorFunctor TambaraSum Source # 

Methods

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

ProfunctorFunctor Environment Source # 

Methods

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

ProfunctorFunctor Closure Source # 

Methods

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

ProfunctorFunctor FreeTraversing Source # 
ProfunctorFunctor CofreeTraversing Source # 
ProfunctorFunctor FreeMapping Source # 

Methods

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

ProfunctorFunctor CofreeMapping Source # 
ProfunctorFunctor Coyoneda Source # 

Methods

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

ProfunctorFunctor Yoneda Source # 

Methods

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

Functor f => ProfunctorFunctor (Cayley f) Source # 

Methods

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

ProfunctorFunctor (Rift p) Source # 

Methods

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

ProfunctorFunctor (Procompose p) Source # 

Methods

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

ProfunctorFunctor (Ran p) Source # 

Methods

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

ProfunctorFunctor (Product * * p) Source # 

Methods

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

ProfunctorFunctor (Sum * * p) Source # 

Methods

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

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

Methods

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

class ProfunctorFunctor t => ProfunctorMonad t where Source #

Minimal complete definition

proreturn, projoin

Methods

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

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

Instances

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

Cayley transforms Monads in Hask into monads on Prof

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

Methods

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

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

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

Methods

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

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

class ProfunctorFunctor t => ProfunctorComonad t where Source #

Minimal complete definition

proextract, produplicate

Methods

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

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

Instances

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

Cayley transforms Comonads in Hask into comonads on Prof

Category * p => ProfunctorComonad (Rift p) Source # 

Methods

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

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

Category * p => ProfunctorComonad (Ran p) Source # 

Methods

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

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

ProfunctorComonad (Product * * p) Source # 
Comonad f => ProfunctorComonad (Tannen * * * f) Source #