on master help sign in
Derive Foldable and Traversable instance for all the newtype wrappers around streams
commit159a0d2e50d4266179584ef50faffdbe57fb6acc authorAbhiroop Sarkar <asiamgenius@gmail.com> dateFri 2 Nov 2018, 21:45 (8 years ago) parent977c344
5 files changed+13−8
src/Streamly/Streams/Ahead.hs+2−1 src/Streamly/Streams/Async.hs+3−2 src/Streamly/Streams/Parallel.hs+2−1 src/Streamly/Streams/Serial.hs+3−2 src/Streamly/Streams/Zip.hs+3−2
src/Streamly/Streams/Ahead.hs+2−1
@@ -1,5 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE ConstraintKinds #-}
3+{-# LANGUAGE DeriveTraversable #-}
34{-# LANGUAGE FlexibleContexts #-}
45{-# LANGUAGE FlexibleInstances #-}
56{-# LANGUAGE GeneralizedNewtypeDeriving#-}
@@ -619,7 +620,7 @@ consMAhead m r = K.yieldM m `aheadS` r
619620--
620621-- @since 0.3.0
621622newtype AheadT m a = AheadT {getAheadT :: Stream m a}
622− deriving (MonadTrans)
623+ deriving (MonadTrans, Foldable, Traversable)
623624
624625-- | A serial IO stream of elements of type @a@ with concurrent lookahead. See
625626-- 'AheadT' documentation for more details.
src/Streamly/Streams/Async.hs+3−2
@@ -1,5 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE ConstraintKinds #-}
3+{-# LANGUAGE DeriveTraversable #-}
34{-# LANGUAGE FlexibleContexts #-}
45{-# LANGUAGE FlexibleInstances #-}
56{-# LANGUAGE GeneralizedNewtypeDeriving#-}
@@ -635,7 +636,7 @@ consMAsync m r = K.yieldM m `asyncS` r
635636--
636637-- @since 0.1.0
637638newtype AsyncT m a = AsyncT {getAsyncT :: Stream m a}
638− deriving (MonadTrans)
639+ deriving (MonadTrans, Foldable, Traversable)
639640
640641-- | A demand driven left biased parallely composing IO stream of elements of
641642-- type @a@. See 'AsyncT' documentation for more details.
@@ -762,7 +763,7 @@ wAsync m1 m2 = fromStream $ Stream $ \st stp sng yld ->
762763--
763764-- @since 0.2.0
764765newtype WAsyncT m a = WAsyncT {getWAsyncT :: Stream m a}
765− deriving (MonadTrans)
766+ deriving (MonadTrans, Foldable, Traversable)
766767
767768-- | A round robin parallely composing IO stream of elements of type @a@.
768769-- See 'WAsyncT' documentation for more details.
src/Streamly/Streams/Parallel.hs+2−1
@@ -1,5 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE ConstraintKinds #-}
3+{-# LANGUAGE DeriveTraversable #-}
34{-# LANGUAGE FlexibleContexts #-}
45{-# LANGUAGE FlexibleInstances #-}
56{-# LANGUAGE GeneralizedNewtypeDeriving#-}
@@ -325,7 +326,7 @@ x |&. f = f |$. x
325326--
326327-- @since 0.1.0
327328newtype ParallelT m a = ParallelT {getParallelT :: Stream m a}
328− deriving (MonadTrans)
329+ deriving (MonadTrans, Foldable, Traversable)
329330
330331-- | A parallely composing IO stream of elements of type @a@.
331332-- See 'ParallelT' documentation for more details.
src/Streamly/Streams/Serial.hs+3−2
@@ -1,5 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE ConstraintKinds #-}
3+{-# LANGUAGE DeriveTraversable #-}
34{-# LANGUAGE FlexibleContexts #-}
45{-# LANGUAGE FlexibleInstances #-}
56{-# LANGUAGE GeneralizedNewtypeDeriving#-}
@@ -121,7 +122,7 @@ import qualified Streamly.Streams.StreamD as D
121122--
122123-- @since 0.2.0
123124newtype SerialT m a = SerialT {getSerialT :: Stream m a}
124− deriving (Semigroup, Monoid, MonadTrans)
125+ deriving (Semigroup, Monoid, MonadTrans, Foldable, Traversable)
125126
126127-- | A serial IO stream of elements of type @a@. See 'SerialT' documentation
127128-- for more details.
@@ -241,7 +242,7 @@ MONAD_COMMON_INSTANCES(SerialT,)
241242--
242243-- @since 0.2.0
243244newtype WSerialT m a = WSerialT {getWSerialT :: Stream m a}
244− deriving (MonadTrans)
245+ deriving (MonadTrans, Foldable, Traversable)
245246
246247-- | An interleaving serial IO stream of elements of type @a@. See 'WSerialT'
247248-- documentation for more details.
src/Streamly/Streams/Zip.hs+3−2
@@ -1,5 +1,6 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE ConstraintKinds #-}
3+{-# LANGUAGE DeriveTraversable #-}
34{-# LANGUAGE FlexibleContexts #-}
45{-# LANGUAGE FlexibleInstances #-}
56{-# LANGUAGE GeneralizedNewtypeDeriving#-}
@@ -72,7 +73,7 @@ import qualified Streamly.Streams.StreamK as K
7273--
7374-- @since 0.2.0
7475newtype ZipSerialM m a = ZipSerialM {getZipSerialM :: Stream m a}
75− deriving (Semigroup, Monoid)
76+ deriving (Semigroup, Monoid, Foldable, Traversable)
7677
7778-- |
7879-- @since 0.1.0
@@ -166,7 +167,7 @@ zipAsyncWithM f m1 m2 = fromStream $ Stream $ \st stp sng yld -> do
166167--
167168-- @since 0.2.0
168169newtype ZipAsyncM m a = ZipAsyncM {getZipAsyncM :: Stream m a}
169− deriving (Semigroup, Monoid)
170+ deriving (Semigroup, Monoid, Foldable, Traversable)
170171
171172-- | An IO stream whose applicative instance zips streams wAsyncly.
172173--