Proposal: Add Monad instance for WrappedMonad

Roman Cheplyaka roma at ro-che.info
Fri Aug 2 12:28:08 CEST 2013


Makes sense. +1

* Daniel Gorín <dgorin at dc.uba.ar> [2013-08-02 12:18:11+0200]
> 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




More information about the Libraries mailing list