packages feed

pipes-safe 2.3.0 → 2.3.1

raw patch · 5 files changed

+37/−12 lines, 5 filesdep ~primitivePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: primitive

API changes (from Hackage documentation)

- Pipes.Safe: instance (Control.Monad.Catch.MonadMask m, Control.Monad.IO.Class.MonadIO m, Control.Monad.Fail.MonadFail m) => Control.Monad.Catch.MonadMask (Pipes.Internal.Proxy a' a b' b m)
- Pipes.Safe: instance (Pipes.Safe.MonadSafe m, Control.Monad.Fail.MonadFail m) => Pipes.Safe.MonadSafe (Pipes.Internal.Proxy a' a b' b m)
+ Pipes.Safe: instance (Control.Monad.Catch.MonadMask m, Control.Monad.IO.Class.MonadIO m) => Control.Monad.Catch.MonadMask (Pipes.Internal.Proxy a' a b' b m)
+ Pipes.Safe: instance Control.Monad.Fail.MonadFail m => Control.Monad.Fail.MonadFail (Pipes.Safe.SafeT m)
+ Pipes.Safe: instance Pipes.Safe.MonadSafe m => Pipes.Safe.MonadSafe (Pipes.Internal.Proxy a' a b' b m)
- Pipes.Safe.Prelude: readFile :: (MonadSafe m, MonadFail m) => FilePath -> Producer' String m ()
+ Pipes.Safe.Prelude: readFile :: MonadSafe m => FilePath -> Producer' String m ()
- Pipes.Safe.Prelude: writeFile :: (MonadSafe m, MonadFail m) => FilePath -> Consumer' String m r
+ Pipes.Safe.Prelude: writeFile :: MonadSafe m => FilePath -> Consumer' String m r

Files

README.md view
@@ -1,4 +1,4 @@-# Pipes-Safe v2.3.0+# Pipes-Safe v2.3.1  `pipes-safe` builds upon [the `pipes` library](https://github.com/Gabriel439/Haskell-Pipes-Library) to
changelog.md view
@@ -1,3 +1,8 @@+# Version 2.3.1++* Remove `MonadFail` constraints introduced in version 2.3.0+* Implement `MonadFail` for `SafeT`+ # Version 2.3.0  * BREAKING CHANGE: Support GHC 8.6.1
pipes-safe.cabal view
@@ -1,5 +1,5 @@ Name: pipes-safe-Version: 2.3.0+Version: 2.3.1 Cabal-Version: >=1.8.0.2 Build-Type: Simple License: BSD3
src/Pipes/Safe.hs view
@@ -148,7 +148,7 @@ data Restore m = Unmasked | Masked (forall x . m x -> m x)  liftMask-    :: forall m a' a b' b r . (MonadIO m, MonadCatch m, MonadFail m)+    :: forall m a' a b' b r . (MonadIO m, MonadCatch m)     => (forall s . ((forall x . m x -> m x) -> m s) -> m s)     -> ((forall x . Proxy a' a b' b m x -> Proxy a' a b' b m x)         -> Proxy a' a b' b m r)@@ -172,7 +172,9 @@         unmask (Respond b  fb') = Respond b  (unmask . fb')         unmask (M m)            = M $ do             -- retrieve base's unmask and apply to merged action-            Masked unmaskVariant <- liftIO $ readIORef ioref+            unmaskVariant <- liftIO $ do+                Masked unmaskVariant <- readIORef ioref+                return unmaskVariant             unmaskVariant (m >>= chunk >>= return . unmask)         unmask (Pure q)         = Pure q @@ -183,7 +185,7 @@      loop $ k unmask -instance (MonadMask m, MonadIO m, MonadFail m) => MonadMask (Proxy a' a b' b m) where+instance (MonadMask m, MonadIO m) => MonadMask (Proxy a' a b' b m) where     mask = liftMask mask      uninterruptibleMask = liftMask uninterruptibleMask@@ -217,9 +219,28 @@     in the event of exceptions. -} newtype SafeT m r = SafeT { unSafeT :: R.ReaderT (IORef (Maybe (Finalizers m))) m r }-    deriving (Functor, Applicative, Alternative, Monad, MonadPlus, MonadFix,-              EC.MonadError e, SC.MonadState s, WC.MonadWriter w, CC.MonadCont,-              MonadThrow, MonadCatch, MonadMask, MonadIO, B.MonadBase b)+    deriving+    ( Functor+    , Applicative+    , Alternative+    , Monad+-- The derived instance for `MonadFail` requires a `MonadFail` instance for+-- `ReaderT` which is first available in `transformers-0.5.0.0`+#if MIN_VERSION_transformers(0,5,0)+    , MonadFail+#endif+    , MonadPlus+    , MonadFix+    , EC.MonadError e+    , SC.MonadState s+    , WC.MonadWriter w+    , CC.MonadCont+    , MonadThrow+    , MonadCatch+    , MonadMask+    , MonadIO+    , B.MonadBase b+    )  instance MonadTrans SafeT where     lift m = SafeT (lift m)@@ -332,7 +353,7 @@                 Just (Finalizers n fs) ->                     (Just $! Finalizers n (M.delete (unlock key) fs), ()) -instance (MonadSafe m, MonadFail m) => MonadSafe (Proxy a' a b' b m) where+instance MonadSafe m => MonadSafe (Proxy a' a b' b m) where     type Base (Proxy a' a b' b m) = Base m     liftBase = lift . liftBase     register = lift . register
src/Pipes/Safe/Prelude.hs view
@@ -12,7 +12,6 @@     writeFile     ) where -import Control.Monad.Fail (MonadFail) import Control.Monad.IO.Class (MonadIO(liftIO)) import Pipes (Producer', Consumer') import Pipes.Safe (bracket, MonadSafe)@@ -35,13 +34,13 @@ {-| Read lines from a file, automatically opening and closing the file as     necessary -}-readFile :: (MonadSafe m, MonadFail m) => FilePath -> Producer' String m ()+readFile :: MonadSafe m => FilePath -> Producer' String m () readFile file = withFile file IO.ReadMode P.fromHandle {-# INLINABLE readFile #-}  {-| Write lines to a file, automatically opening and closing the file as     necessary -}-writeFile :: (MonadSafe m, MonadFail m) => FilePath -> Consumer' String m r+writeFile :: MonadSafe m => FilePath -> Consumer' String m r writeFile file = withFile file IO.WriteMode P.toHandle {-# INLINABLE writeFile #-}