control-monad-exception-0.1.2: Explicitly typed exceptions

Control.Monad.Exception

Synopsis

Documentation

newtype EM l a Source

Constructors

EM 

Instances

(Exception e, Throws e l) => MonadThrow e (EM l) 
Exception e => MonadCatch e (EM (Caught e l)) (EM l) 
Monad (EM l) 
Functor (EM l) 
Throws MonadZero l => MonadPlus (EM l) 

evalEM :: EM (Caught SomeException l) a -> Either SomeException aSource

Run a computation which may fail

runEM :: EM l a -> aSource

Run a safe computation

newtype EMT l m a Source

Constructors

EMT 

Fields

unEMT :: m (Either SomeException a)
 

Instances

(Monoid w, MonadRWS r w s m) => MonadRWS r w s (EMT l m) 
MonadReader r m => MonadReader r (EMT l m) 
MonadState s m => MonadState s (EMT l m) 
(Monoid w, MonadWriter w m) => MonadWriter w (EMT l m) 
(Exception e, Throws e l, Monad m) => MonadThrow e (EMT l m) 
(Exception e, Monad m) => MonadCatch e (EMT (Caught e l) m) (EMT l m) 
MonadTrans (EMT l) 
Monad m => Monad (EMT l m) 
Monad m => Functor (EMT l m) 
MonadFix m => MonadFix (EMT l m) 
(Monad m, Throws MonadZero l) => MonadPlus (EMT l m) 
MonadIO m => MonadIO (EMT l m) 
MonadCont m => MonadCont (EMT l m) 

runEMT :: Monad m => EMT l m a -> m aSource