packages feed

MonadCatchIO-transformers 0.2.0.0 → 0.2.1.0

raw patch · 2 files changed

+14/−8 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

MonadCatchIO-transformers.cabal view
@@ -1,5 +1,5 @@ Name:            MonadCatchIO-transformers-Version:         0.2.0.0+Version:         0.2.1.0 Cabal-Version:   >= 1.6 License:         PublicDomain Description:
src/Control/Monad/CatchIO.hs view
@@ -20,13 +20,14 @@ import           Control.Applicative        ((<$>)) import qualified Control.Exception.Extensible as E -import           Control.Monad.IO.Class     (MonadIO,liftIO)  -import           Control.Monad.Trans.Error  (ErrorT          ,runErrorT ,mapErrorT ,Error)-import           Control.Monad.Trans.Reader (ReaderT(ReaderT),runReaderT,mapReaderT)-import           Control.Monad.Trans.State  (StateT(StateT)  ,runStateT ,mapStateT )-import           Control.Monad.Trans.Writer (WriterT(WriterT),runWriterT,mapWriterT)-import           Control.Monad.Trans.RWS    (RWST(RWST)      ,runRWST   ,mapRWST   )-import           Data.Monoid                (Monoid)+import           Control.Monad.IO.Class           (MonadIO,liftIO)  +import           Control.Monad.Trans.Error        (ErrorT          ,runErrorT ,mapErrorT ,Error)+import           Control.Monad.Trans.Reader       (ReaderT(ReaderT),runReaderT,mapReaderT)+import           Control.Monad.Trans.State        (StateT(StateT)  ,runStateT ,mapStateT )+import qualified Control.Monad.Trans.State.Strict as StrictState+import           Control.Monad.Trans.Writer       (WriterT(WriterT),runWriterT,mapWriterT)+import           Control.Monad.Trans.RWS          (RWST(RWST)      ,runRWST   ,mapRWST   )+import           Data.Monoid                      (Monoid)   class MonadIO m => MonadCatchIO m where@@ -54,6 +55,11 @@   m `catch` f = StateT $ \s -> runStateT m s `catch` \e -> runStateT (f e) s   block       = mapStateT block   unblock     = mapStateT unblock++instance MonadCatchIO m => MonadCatchIO (StrictState.StateT s m) where+  m `catch` f = StrictState.StateT $ \s -> StrictState.runStateT m s `catch` \e -> StrictState.runStateT (f e) s+  block       = StrictState.mapStateT block+  unblock     = StrictState.mapStateT unblock  instance (MonadCatchIO m, Error e) => MonadCatchIO (ErrorT e m) where   m `catch` f = mapErrorT (\m' -> m' `catch` \e -> runErrorT $ f e) m