 
            
            
            
            
                2 Aug
                
                    2013
                
            
            
                2 Aug
                
                '13
                
            
            
            
        
    
                6:28 a.m.
            
        Makes sense. +1
* Daniel GorĂn 
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