packages feed

pipes 4.3.4 → 4.3.5

raw patch · 4 files changed

+27/−15 lines, 4 filesdep +semigroupsdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: semigroups

Dependency ranges changed: base

API changes (from Hackage documentation)

- Pipes.Internal: instance (GHC.Base.Monad m, GHC.Base.Monoid r) => GHC.Base.Monoid (Pipes.Internal.Proxy a' a b' b m r)
+ Pipes: instance GHC.Base.Monad m => Data.Semigroup.Semigroup (Pipes.ListT m a)
+ Pipes.Internal: instance (GHC.Base.Monad m, Data.Semigroup.Semigroup r) => Data.Semigroup.Semigroup (Pipes.Internal.Proxy a' a b' b m r)
+ Pipes.Internal: instance (GHC.Base.Monad m, GHC.Base.Monoid r, Data.Semigroup.Semigroup r) => GHC.Base.Monoid (Pipes.Internal.Proxy a' a b' b m r)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+4.3.5++* Support `Semigroup` being a super-class of `Monoid`+ 4.3.4  * Increase upper bound on `mmorph`
pipes.cabal view
@@ -1,5 +1,5 @@ Name: pipes-Version: 4.3.4+Version: 4.3.5 Cabal-Version: >= 1.10 Build-Type: Simple Tested-With: GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1@@ -51,7 +51,8 @@         exceptions   >= 0.4     && < 0.9,         mmorph       >= 1.0.0   && < 1.2,         mtl          >= 2.2.1   && < 2.3,-        void         >= 0.4     && < 0.8+        void         >= 0.4     && < 0.8,+        semigroups   >= 0.17    && < 0.19      Exposed-Modules:         Pipes,
src/Pipes.hs view
@@ -63,11 +63,10 @@     , Foldable     ) where -import Control.Monad (void)-import Control.Monad.Catch (MonadThrow(..), MonadCatch(..), MonadMask(..))+import Control.Monad (void, MonadPlus(mzero, mplus))+import Control.Monad.Catch (MonadThrow(..), MonadCatch(..)) import Control.Monad.Except (MonadError(..)) import Control.Monad.IO.Class (MonadIO(liftIO))-import Control.Monad (MonadPlus(mzero, mplus)) import Control.Monad.Reader (MonadReader(..)) import Control.Monad.State (MonadState(..)) import Control.Monad.Trans.Class (MonadTrans(lift))@@ -86,10 +85,8 @@ import Control.Applicative import Data.Foldable (Foldable) import Data.Traversable (Traversable(..))-import Data.Monoid #endif--import qualified Control.Monad.Catch+import Data.Semigroup  -- Re-exports import Control.Monad.Morph (MFunctor(hoist), MMonad(embed))@@ -484,11 +481,17 @@         loop (Pure    r     ) = Pure r     {-# INLINE embed #-} +instance (Monad m) => Semigroup (ListT m a) where+    (<>) = (<|>)+    {-# INLINE (<>) #-}+ instance (Monad m) => Monoid (ListT m a) where     mempty = empty     {-# INLINE mempty #-}+#if !(MIN_VERSION_base(4,11,0))     mappend = (<|>)     {-# INLINE mappend #-}+#endif  instance (MonadState s m) => MonadState s (ListT m) where     get     = lift  get
src/Pipes/Internal.hs view
@@ -38,7 +38,7 @@ import Control.Monad.Trans.Class (MonadTrans(lift)) import Control.Monad.Morph (MFunctor(hoist), MMonad(embed)) import Control.Monad.Except (MonadError(..))-import Control.Monad.Catch (MonadThrow(..), MonadCatch(..), MonadMask(..))+import Control.Monad.Catch (MonadThrow(..), MonadCatch(..)) import Control.Monad.Reader (MonadReader(..)) import Control.Monad.State (MonadState(..)) import Control.Monad.Writer (MonadWriter(..))@@ -48,10 +48,9 @@ import Control.Applicative (Alternative(..)) #else import Control.Applicative-import Data.Monoid #endif+import Data.Semigroup -import qualified Control.Monad.Catch import qualified Data.Void  {-| A 'Proxy' is a monad transformer that receives and sends information on both@@ -121,14 +120,19 @@         _bind (Pure    r   ) f = f r;   #-} -instance (Monad m, Monoid r) => Monoid (Proxy a' a b' b m r) where-    mempty        = Pure mempty-    mappend p1 p2 = go p1 where+instance (Monad m, Semigroup r) => Semigroup (Proxy a' a b' b m r) where+    p1 <> p2 = go p1 where         go p = case p of             Request a' fa  -> Request a' (\a  -> go (fa  a ))             Respond b  fb' -> Respond b  (\b' -> go (fb' b'))             M          m   -> M (m >>= \p' -> return (go p'))-            Pure    r1     -> fmap (mappend r1) p2+            Pure    r1     -> fmap (r1 <>) p2++instance (Monad m, Monoid r, Semigroup r) => Monoid (Proxy a' a b' b m r) where+    mempty        = Pure mempty+#if !(MIN_VERSION_base(4,11,0))+    mappend = (<>)+#endif  instance MonadTrans (Proxy a' a b' b) where     lift m = M (m >>= \r -> return (Pure r))