profunctors-5.3: 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 #

Methods

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

Laws:

promap f . promap g ≡ promap (f . g)
promap idid
Instances
ProfunctorFunctor Copastro # 
Instance details

Defined in Data.Profunctor.Strong

Methods

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

ProfunctorFunctor Cotambara # 
Instance details

Defined in Data.Profunctor.Strong

Methods

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

ProfunctorFunctor Pastro # 
Instance details

Defined in Data.Profunctor.Strong

Methods

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

ProfunctorFunctor Tambara # 
Instance details

Defined in Data.Profunctor.Strong

Methods

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

ProfunctorFunctor Environment # 
Instance details

Defined in Data.Profunctor.Closed

Methods

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

ProfunctorFunctor Closure # 
Instance details

Defined in Data.Profunctor.Closed

Methods

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

ProfunctorFunctor CopastroSum # 
Instance details

Defined in Data.Profunctor.Choice

Methods

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

ProfunctorFunctor CotambaraSum # 
Instance details

Defined in Data.Profunctor.Choice

Methods

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

ProfunctorFunctor PastroSum # 
Instance details

Defined in Data.Profunctor.Choice

Methods

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

ProfunctorFunctor TambaraSum # 
Instance details

Defined in Data.Profunctor.Choice

Methods

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

ProfunctorFunctor FreeTraversing # 
Instance details

Defined in Data.Profunctor.Traversing

Methods

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

ProfunctorFunctor CofreeTraversing # 
Instance details

Defined in Data.Profunctor.Traversing

ProfunctorFunctor FreeMapping # 
Instance details

Defined in Data.Profunctor.Mapping

Methods

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

ProfunctorFunctor CofreeMapping # 
Instance details

Defined in Data.Profunctor.Mapping

Methods

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

ProfunctorFunctor Coyoneda # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

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

ProfunctorFunctor Yoneda # 
Instance details

Defined in Data.Profunctor.Yoneda

Methods

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

ProfunctorFunctor (Rift p) # 
Instance details

Defined in Data.Profunctor.Composition

Methods

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

ProfunctorFunctor (Procompose p) # 
Instance details

Defined in Data.Profunctor.Composition

Methods

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

ProfunctorFunctor (Ran p) # 
Instance details

Defined in Data.Profunctor.Ran

Methods

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

Functor f => ProfunctorFunctor (Cayley f) # 
Instance details

Defined in Data.Profunctor.Cayley

Methods

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

ProfunctorFunctor (Sum p) # 
Instance details

Defined in Data.Profunctor.Monad

Methods

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

ProfunctorFunctor (Product p) # 
Instance details

Defined in Data.Profunctor.Monad

Methods

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

Functor f => ProfunctorFunctor (Tannen f :: (Type -> Type -> Type) -> Type -> Type -> Type) # 
Instance details

Defined in Data.Profunctor.Monad

Methods

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

class ProfunctorFunctor t => ProfunctorMonad t where #

Methods

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

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

Instances
ProfunctorMonad Copastro # 
Instance details

Defined in Data.Profunctor.Strong

ProfunctorMonad Pastro # 
Instance details

Defined in Data.Profunctor.Strong

ProfunctorMonad Environment # 
Instance details

Defined in Data.Profunctor.Closed

ProfunctorMonad CopastroSum # 
Instance details

Defined in Data.Profunctor.Choice

ProfunctorMonad PastroSum # 
Instance details

Defined in Data.Profunctor.Choice

ProfunctorMonad FreeTraversing # 
Instance details

Defined in Data.Profunctor.Traversing

ProfunctorMonad FreeMapping # 
Instance details

Defined in Data.Profunctor.Mapping

ProfunctorMonad Coyoneda # 
Instance details

Defined in Data.Profunctor.Yoneda

ProfunctorMonad Yoneda # 
Instance details

Defined in Data.Profunctor.Yoneda

Category p => ProfunctorMonad (Procompose p) # 
Instance details

Defined in Data.Profunctor.Composition

Methods

proreturn :: Profunctor p0 => p0 :-> Procompose p p0 #

projoin :: Profunctor p0 => Procompose p (Procompose p p0) :-> Procompose p p0 #

(Functor f, Monad f) => ProfunctorMonad (Cayley f) #

Cayley transforms Monads in Hask into monads on Prof

Instance details

Defined in Data.Profunctor.Cayley

Methods

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

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

ProfunctorMonad (Sum p) # 
Instance details

Defined in Data.Profunctor.Monad

Methods

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

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

Monad f => ProfunctorMonad (Tannen f :: (Type -> Type -> Type) -> Type -> Type -> Type) # 
Instance details

Defined in Data.Profunctor.Monad

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 #

Methods

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

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

Instances
ProfunctorComonad Cotambara # 
Instance details

Defined in Data.Profunctor.Strong

ProfunctorComonad Tambara # 
Instance details

Defined in Data.Profunctor.Strong

ProfunctorComonad Closure # 
Instance details

Defined in Data.Profunctor.Closed

ProfunctorComonad CotambaraSum # 
Instance details

Defined in Data.Profunctor.Choice

ProfunctorComonad TambaraSum # 
Instance details

Defined in Data.Profunctor.Choice

ProfunctorComonad CofreeTraversing # 
Instance details

Defined in Data.Profunctor.Traversing

ProfunctorComonad CofreeMapping # 
Instance details

Defined in Data.Profunctor.Mapping

ProfunctorComonad Coyoneda # 
Instance details

Defined in Data.Profunctor.Yoneda

ProfunctorComonad Yoneda # 
Instance details

Defined in Data.Profunctor.Yoneda

Category p => ProfunctorComonad (Rift p) # 
Instance details

Defined in Data.Profunctor.Composition

Methods

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

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

Category p => ProfunctorComonad (Ran p) # 
Instance details

Defined in Data.Profunctor.Ran

Methods

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

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

Comonad f => ProfunctorComonad (Cayley f) #

Cayley transforms Comonads in Hask into comonads on Prof

Instance details

Defined in Data.Profunctor.Cayley

Methods

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

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

ProfunctorComonad (Product p) # 
Instance details

Defined in Data.Profunctor.Monad

Methods

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

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

Comonad f => ProfunctorComonad (Tannen f :: (Type -> Type -> Type) -> Type -> Type -> Type) # 
Instance details

Defined in Data.Profunctor.Monad

Methods

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

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