control-monad-exception 0.3 → 0.3.1
raw patch · 2 files changed
+14/−4 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Control.Monad.Exception: EMT :: m (Either (WrapException l) a) -> EMT l m a
- Control.Monad.Exception: newtype EMT l m a
- Control.Monad.Exception: unEMT :: EMT l m a -> m (Either (WrapException l) a)
+ Control.Monad.Exception: data EMT l m a
+ Control.Monad.Exception: evalEM :: EM (AnyException l) a -> Either SomeException a
+ Control.Monad.Exception: runEMParanoid :: EM ParanoidMode a -> a
- Control.Monad.Exception: evalEMT :: (Monad m) => EMT (Caught SomeException l) m a -> m (Either SomeException a)
+ Control.Monad.Exception: evalEMT :: (Monad m) => EMT (AnyException l) m a -> m (Either SomeException a)
Files
Control/Monad/Exception.hs view
@@ -5,8 +5,8 @@ {-# LANGUAGE OverlappingInstances #-} module Control.Monad.Exception (- EM, runEM,- EMT(..), evalEMT, runEMT, runEMTParanoid,+ EM, evalEM, runEM, runEMParanoid,+ EMT, evalEMT, runEMT, runEMTParanoid, MonadZeroException(..), module Control.Monad.Exception.Class ) where @@ -38,15 +38,25 @@ mapLeft _ (Right x) = Right x -- | Run a safe computation+evalEM :: EM (AnyException l) a -> Either SomeException a+evalEM = runIdentity . evalEMT++-- | Run a safe computation runEM :: EM NoExceptions a -> a runEM = runIdentity . runEMT +-- | Run a safe computation+runEMParanoid :: EM ParanoidMode a -> a+runEMParanoid = runIdentity . runEMTParanoid+ data MonadZeroException = MonadZeroException deriving (Show, Typeable) instance Exception MonadZeroException newtype EMT l m a = EMT {unEMT :: m (Either (WrapException l) a)} -evalEMT :: Monad m => EMT (Caught SomeException l) m a -> m (Either SomeException a)+type AnyException = Caught SomeException++evalEMT :: Monad m => EMT (AnyException l) m a -> m (Either SomeException a) evalEMT (EMT m) = mapLeft wrapException `liftM` m runEMT_gen :: Monad m => EMT l m a -> m a
control-monad-exception.cabal view
@@ -1,5 +1,5 @@ name: control-monad-exception-version: 0.3+version: 0.3.1 Cabal-Version: >= 1.2.3 build-type: Simple license: PublicDomain