packages feed

pipes-safe 2.1.0 → 2.2.0

raw patch · 2 files changed

+16/−10 lines, 2 filesdep ~exceptionsdep ~transformers

Dependency ranges changed: exceptions, transformers

Files

pipes-safe.cabal view
@@ -1,5 +1,5 @@ Name: pipes-safe-Version: 2.1.0+Version: 2.2.0 Cabal-Version: >=1.8.0.2 Build-Type: Simple License: BSD3@@ -36,8 +36,8 @@     Build-Depends:         base         >= 4       && < 5  ,         containers   >= 0.3.0.0 && < 0.6,-        exceptions   >= 0.4     && < 0.6,-        transformers >= 0.2.0.0 && < 0.4,+        exceptions   >= 0.6     && < 0.7,+        transformers >= 0.2.0.0 && < 0.5,         pipes        >= 4.0.0   && < 4.2     Exposed-Modules:         Pipes.Safe,
src/Pipes/Safe.hs view
@@ -89,6 +89,7 @@ import Control.Monad.Catch     ( MonadCatch(..)     , MonadThrow(..)+    , MonadMask(..)     , mask_     , uninterruptibleMask_     , catchAll@@ -162,11 +163,13 @@                 Pure r         -> Pure r         loop (k unmask) -instance MonadThrow m => MonadThrow (Proxy a' a b' b m) where+instance (MonadThrow m) => MonadThrow (Proxy a' a b' b m) where     throwM = lift . throwM -instance (MonadCatch m, MonadIO m) => MonadCatch (Proxy a' a b' b m) where-    catch  = liftCatchError C.catch+instance (MonadCatch m) => MonadCatch (Proxy a' a b' b m) where+    catch = liftCatchError C.catch++instance (MonadMask m, MonadIO m) => MonadMask (Proxy a' a b' b m) where     mask                = liftMask mask     uninterruptibleMask = liftMask uninterruptibleMask @@ -215,6 +218,9 @@ -- Deriving 'MonadCatch' instance (MonadCatch m) => MonadCatch (SafeT m) where     m `catch` f = SafeT (unSafeT m `C.catch` \r -> unSafeT (f r))++-- Deriving 'MonadMask'+instance (MonadMask m) => MonadMask (SafeT m) where     mask k = SafeT (mask (\restore ->         unSafeT (k (\ma -> SafeT (restore (unSafeT ma)))) ))     uninterruptibleMask k = SafeT (uninterruptibleMask (\restore ->@@ -226,7 +232,7 @@ {-| Run the 'SafeT' monad transformer, executing all unreleased finalizers at     the end of the computation -}-runSafeT :: (MonadCatch m, MonadIO m) => SafeT m r -> m r+runSafeT :: (MonadMask m, MonadIO m) => SafeT m r -> m r runSafeT m = C.bracket     (liftIO $ newIORef $! Finalizers 0 M.empty)     (\ioref -> do@@ -241,7 +247,7 @@     Use 'runSafeP' to safely flush all unreleased finalizers and ensure prompt     finalization without exiting the 'Proxy' monad. -}-runSafeP :: (MonadCatch m, MonadIO m) => Effect (SafeT m) r -> Effect' m r+runSafeP :: (MonadMask m, MonadIO m) => Effect (SafeT m) r -> Effect' m r runSafeP = lift . runSafeT . runEffect {-# INLINABLE runSafeP #-} @@ -251,7 +257,7 @@ {-| 'MonadSafe' lets you 'register' and 'release' finalizers that execute in a     'Base' monad -}-class (MonadCatch m, MonadIO m, MonadIO (Base m)) => MonadSafe m where+class (MonadCatch m, MonadMask m, MonadIO m, MonadIO (Base m)) => MonadSafe m where     {-| The monad used to run resource management actions, corresponding to the         monad directly beneath 'SafeT'     -}@@ -273,7 +279,7 @@     -}     release  :: ReleaseKey -> m () -instance (MonadIO m, MonadCatch m) => MonadSafe (SafeT m) where+instance (MonadIO m, MonadCatch m, MonadMask m) => MonadSafe (SafeT m) where     type Base (SafeT m) = m      liftBase = lift