enumerator 0.4.6 → 0.4.7
raw patch · 3 files changed
+11/−5 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- enumerator.cabal +1/−1
- hs/Data/Enumerator.hs +4/−2
- src/types.anansi +6/−2
enumerator.cabal view
@@ -1,5 +1,5 @@ name: enumerator-version: 0.4.6+version: 0.4.7 synopsis: Reliable, high-performance processing with left-fold enumerators license: MIT license-file: license.txt
hs/Data/Enumerator.hs view
@@ -123,6 +123,8 @@ import qualified Control.Exception as Exc +import Data.Function (fix)+ import Control.Monad.Trans.Class (MonadTrans, lift) import Control.Monad.IO.Class (MonadIO, liftIO) @@ -317,9 +319,9 @@ instance Monad m => Monad (Iteratee a m) where return x = yield x (Chunks []) - m >>= f = Iteratee $ runIteratee m >>=+ m0 >>= f = ($ m0) $ fix $ \bind m -> Iteratee $ runIteratee m >>= \r1 -> case r1 of- Continue k -> return (Continue ((>>= f) . k))+ Continue k -> return (Continue (bind . k)) Error err -> return (Error err) Yield x (Chunks []) -> runIteratee (f x) Yield x extra -> runIteratee (f x) >>=
src/types.anansi view
@@ -285,13 +285,17 @@ be applied to arbitrary input streams. Iteratees are also applicative functors and monad transformers. +:d Data.Enumerator imports+import Data.Function (fix)+:+ :f Data/Enumerator.hs instance Monad m => Monad (Iteratee a m) where return x = yield x (Chunks []) - m >>= f = Iteratee $ runIteratee m >>=+ m0 >>= f = ($ m0) $ fix $ \bind m -> Iteratee $ runIteratee m >>= \r1 -> case r1 of- Continue k -> return (Continue ((>>= f) . k))+ Continue k -> return (Continue (bind . k)) Error err -> return (Error err) Yield x (Chunks []) -> runIteratee (f x) Yield x extra -> runIteratee (f x) >>=