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.