| Copyright | (C) 2014-2015 Edward Kmett |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Edward Kmett <ekmett@gmail.com> |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Data.Profunctor.Monad
Description
- class ProfunctorFunctor t where
- class ProfunctorFunctor t => ProfunctorMonad t where
- class ProfunctorFunctor t => ProfunctorComonad t where
Documentation
class ProfunctorFunctor t where #
Minimal complete definition
Methods
promap :: Profunctor p => (p :-> q) -> t p :-> t q #
Instances
class ProfunctorFunctor t => ProfunctorMonad t where #
Laws:
promapf.proreturn≡proreturn.fprojoin.proreturn≡idprojoin.promapproreturn≡idprojoin.projoin≡projoin.promapprojoin
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 |
| Category * p => ProfunctorMonad (Procompose p) # | |
| ProfunctorMonad (Sum * * p) # | |
| Monad f => ProfunctorMonad (Tannen * * * f) # | |
class ProfunctorFunctor t => ProfunctorComonad t where #
Laws:
proextract.promapf ≡ f.proextractproextract.produplicate≡idpromapproextract.produplicate≡idproduplicate.produplicate≡promapproduplicate.produplicate
Minimal complete definition
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 |
| Category * p => ProfunctorComonad (Rift p) # | |
| Category * p => ProfunctorComonad (Ran p) # | |
| ProfunctorComonad (Product * * p) # | |
| Comonad f => ProfunctorComonad (Tannen * * * f) # | |