Portability | non-portable |
---|---|

Stability | provisional |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Safe Haskell | Trustworthy |

## Actions

class (Monad m, Gettable 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.

(Gettable (Effect m r), Monad m) => Effective m r (Effect m r) | |

Functor (Effect m r) | |

(Functor (Effect m r), Monad m, Monoid r) => Applicative (Effect m r) | |

(Functor (Effect m r), Apply m, Semigroup r) => Apply (Effect m r) | |

Functor (Effect m r) => Gettable (Effect m r) | |

(Monad m, Monoid r) => Monoid (Effect m r a) | |

(Apply m, Semigroup r) => Semigroup (Effect m r a) |