| Copyright | (C) 2011 Edward Kmett |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Edward Kmett <ekmett@gmail.com> |
| Stability | provisional |
| Portability | MPTCs, fundeps |
| Safe Haskell | Safe |
| Language | Haskell98 |
Control.Monad.Trans.Contravariant.Adjoint
Description
Uses a contravariant adjunction:
f -| g : Hask^op -> Hask
to build a Comonad to Monad transformer. Sadly, the dual construction,
which builds a Comonad out of a Monad, is uninhabited, because any
Adjunction of the form
f -| g : Hask -> Hask^op
would trivially admit unsafePerformIO.
Documentation
runAdjoint :: Contravariant g => Adjoint f g a -> g (f a) Source
adjoint :: Contravariant g => g (f a) -> Adjoint f g a Source
newtype AdjointT f g w a Source
Constructors
| AdjointT | |
Fields
| |
Instances
| (Adjunction f g, Comonad w) => Monad (AdjointT f g w) Source | |
| (Adjunction f g, Functor w) => Functor (AdjointT f g w) Source | |
| (Adjunction f g, Comonad w) => Applicative (AdjointT f g w) Source |