2 Aug 12:18 2013

## Proposal: Add Monad instance for WrappedMonad

Daniel Gorín <dgorin <at> dc.uba.ar>

2013-08-02 10:18:11 GMT

2013-08-02 10:18:11 GMT

Control.Applicative.WrappedMonad allows one to use the Functor and Applicative interfaces of something that is only known to be a Monad but, oddly enough, it hides its Monad interface. The proposal is to add the missing Monad instance. A typical use case for this instance would be: f :: Failure String m => T1 -> m T2 f = unwrapMonad . f' where f' x = do ... -- one can also use (<$>), (<*>), etc here (NB. the Failure class is a subclass of Monad only). A related proposal for the transformers package would be to add a MonadTrans instance for WrappedMonad as well. Thanks, Daniel