Portability | non-portable |
---|---|
Stability | provisional |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Safe Haskell | Trustworthy |
- class (Monad m, Functor f, Contravariant f) => Effective m r f | f -> m r where
- effective :: m r -> f a
- ineffective :: f a -> m r
- newtype Effect m r a = Effect {
- getEffect :: m r
Actions
class (Monad m, Functor f, Contravariant f) => Effective m r f | f -> m r whereSource
An Effective
Functor
ignores its argument and is isomorphic to a Monad
wrapped around a value.
That said, the Monad
is possibly rather unrelated to any Applicative
structure.
ineffective :: f a -> m rSource
Wrap a monadic effect with a phantom type argument.