@@ -1,6 +1,5 @@
11{-# LANGUAGE CPP #-}
22{-# LANGUAGE ConstraintKinds #-}
3−{-# LANGUAGE DeriveTraversable #-}
43{-# LANGUAGE FlexibleContexts #-}
54{-# LANGUAGE FlexibleInstances #-}
65{-# LANGUAGE GeneralizedNewtypeDeriving#-}
@@ -43,6 +42,7 @@ module Streamly.Streams.Serial
4342 )
4443where
4544
45+import Control.Applicative (liftA2)
4646import Control.DeepSeq (NFData(..), NFData1(..), rnf1)
4747import Control.Monad (ap)
4848import Control.Monad.Base (MonadBase(..), liftBaseDefault)
@@ -52,7 +52,8 @@ import Control.Monad.IO.Class (MonadIO(..))
5252import Control.Monad.Reader.Class (MonadReader(..))
5353import Control.Monad.State.Class (MonadState(..))
5454import Control.Monad.Trans.Class (MonadTrans(lift))
55−import Data.Functor.Identity (Identity, runIdentity)
55+import Data.Functor.Identity (Identity(..), runIdentity)
56+import Data.Foldable (fold)
5657import Data.Semigroup (Semigroup(..))
5758import GHC.Exts (IsList(..), IsString(..))
5859import Text.Read (Lexeme(Ident), lexP, parens, prec, readPrec, readListPrec,
@@ -129,7 +130,7 @@ import qualified Streamly.Streams.StreamD as D
129130--
130131-- @since 0.2.0
131132newtype SerialT m a = SerialT {getSerialT :: Stream m a}
132− deriving (Semigroup, Monoid, MonadTrans, Foldable, Traversable)
133+ deriving (Semigroup, Monoid, MonadTrans)
133134
134135-- | A serial IO stream of elements of type @a@. See 'SerialT' documentation
135136-- for more details.
@@ -249,7 +250,7 @@ MONAD_COMMON_INSTANCES(SerialT,)
249250--
250251-- @since 0.2.0
251252newtype WSerialT m a = WSerialT {getWSerialT :: Stream m a}
252− deriving (MonadTrans, Foldable, Traversable)
253+ deriving (MonadTrans)
253254
254255-- | An interleaving serial IO stream of elements of type @a@. See 'WSerialT'
255256-- documentation for more details.
@@ -353,3 +354,9 @@ MONAD_COMMON_INSTANCES(WSerialT,)
353354
354355LIST_INSTANCES(SerialT)
355356LIST_INSTANCES(WSerialT)
357+
358+FOLDABLE_INSTANCE(SerialT)
359+FOLDABLE_INSTANCE(WSerialT)
360+
361+TRAVERSABLE_INSTANCE(SerialT)
362+TRAVERSABLE_INSTANCE(WSerialT)