monad-wrap-0.1: Wrap functions such as catch around different monads

Safe HaskellNone

Control.Monad.WrapBase

Description

MonadWrapBase is a generalized version of MonadWrapIO to work around transformed versions of other base monads.

Documentation

class Monad m => MonadWrapBase m b a r | m -> b, m b a -> r whereSource

Methods

wrapBase :: (b r -> b r) -> m a -> m aSource

resultBase :: a -> m rSource

resultFBase :: m (a -> r)Source

Instances

MonadWrapBase [] [] a a 
MonadWrapBase IO IO a a 
MonadWrapBase STM STM a a 
MonadWrapBase Maybe Maybe a a 
MonadWrapBase Identity Identity a a 
(Monad m, MonadTrans t, Monad (t m), MonadWrapBase m b ar r, MonadWrap t a ar) => MonadWrapBase (t m) b a r 
MonadWrapBase ((->) r) ((->) r) a a 
MonadWrapBase (Either e) (Either e) a a 
MonadWrapBase (ST s) (ST s) a a 
MonadWrapBase (ST s) (ST s) a a