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