conduino 0.2.3.0 → 0.2.4.0
raw patch · 4 files changed
+36/−10 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Conduino: instance Control.Monad.Trans.Class.MonadTrans (Data.Conduino.ZipSink i u)
- Data.Conduino: instance Control.Monad.Trans.Class.MonadTrans Data.Conduino.ZipSource
+ Data.Conduino: liftZipSink :: Monad m => m a -> ZipSink i u m a
+ Data.Conduino: liftZipSource :: Monad m => m a -> ZipSource m a
Files
- CHANGELOG.md +11/−0
- conduino.cabal +1/−1
- src/Data/Conduino.hs +18/−8
- src/Data/Conduino/Internal.hs +6/−1
CHANGELOG.md view
@@ -1,6 +1,17 @@ Changelog ========= +Version 0.2.4.0+---------------++*December 15, 2023*++<https://github.com/mstksg/conduino/releases/tag/v0.2.4.0>++* Remove the "morally incorrect" `MonadTrans` instance for `ZipSource` and+ `ZipSink`, and replace them with `liftZipSource` and `liftZipSink`. This+ also adds compatibility with *transformers-0.6*.+ Version 0.2.3.0 ---------------
conduino.cabal view
@@ -7,7 +7,7 @@ -- hash: 94a4f8415936756af3ddab6ae4a237db4a3f8ee9d4b93ce27fe211cceca6761b name: conduino-version: 0.2.3.0+version: 0.2.4.0 synopsis: Lightweight composable continuation-based stream processors description: A lightweight continuation-based stream processing library. .
src/Data/Conduino.hs view
@@ -1,12 +1,13 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TupleSections #-}-{-# LANGUAGE TypeInType #-} {-# LANGUAGE ViewPatterns #-} -- |@@ -78,9 +79,9 @@ -- * Wrappers , ZipSource(..) , unconsZipSource- , zipSource+ , zipSource, liftZipSource , ZipSink(..)- , zipSink, altSink+ , zipSink, liftZipSink, altSink -- * Generators , toListT, fromListT , pattern PipeList@@ -92,7 +93,6 @@ import Control.Monad.Trans.Class import Control.Monad.Trans.Free (FreeT(..), FreeF(..)) import Control.Monad.Trans.Free.Church-import Control.Monad.Trans.State import Data.Bifunctor import Data.Conduino.Internal import Data.Functor@@ -524,8 +524,13 @@ empty = ZipSource $ pure () ZipSource p <|> ZipSource q = ZipSource (p *> q) -instance MonadTrans ZipSource where- lift = ZipSource . (yield =<<) . lift+-- | Lift an action into a 'ZipSource'. Note that this replaces the previous+-- "morally incorrect" 'MonadTrans' instance for 'ZipSource'.+--+-- @since 0.2.4.0+liftZipSource :: Monad m => m a -> ZipSource m a+liftZipSource = ZipSource . (yield =<<) . lift+{-# INLINE liftZipSource #-} -- | A source is essentially equivalent to 'ListT' producing a 'Maybe' -- result. This converts it to the 'ListT' it encodes.@@ -681,5 +686,10 @@ go = forever await ZipSink p <|> ZipSink q = ZipSink $ altSink p q -instance MonadTrans (ZipSink i u) where- lift = ZipSink . lift+-- | Lift an action into a 'ZipSource'. Note that this replaces the previous+-- "morally incorrect" 'MonadTrans' instance for 'ZipSource'.+--+-- @since 0.2.4.0+liftZipSink :: Monad m => m a -> ZipSink i u m a+liftZipSink = ZipSink . lift+{-# INLINE liftZipSink #-}
src/Data/Conduino/Internal.hs view
@@ -1,12 +1,13 @@ {-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-}+{-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_HADDOCK not-home #-} @@ -50,6 +51,10 @@ #if !MIN_VERSION_base(4,13,0) import Control.Monad.Fail+#endif++#if MIN_VERSION_base(4,18,0)+import Control.Monad (MonadPlus) #endif -- | Base functor of 'Pipe'.