@@ -20,6 +20,7 @@ import Control.Monad.IO.Class (MonadIO(..))
20import Data.Monoid (Sum(..))
20import Data.Monoid (Sum(..))
21import GHC.Generics (Generic)
21import GHC.Generics (Generic)
23+import qualified Streamly.Internal.Data.Consumer.Type as Consumer
23import qualified Streamly.Internal.Data.Fold as FL
24import qualified Streamly.Internal.Data.Fold as FL
24import qualified Streamly.Internal.Data.Stream.IsStream as Internal
25import qualified Streamly.Internal.Data.Stream.IsStream as Internal
25import qualified Streamly.Prelude as S
26import qualified Streamly.Prelude as S
@@ -149,6 +150,15 @@ foldIterateM =
149 (return . FL.take 2 . FL.sconcat) (return (Sum 0))
150 (return . FL.take 2 . FL.sconcat) (return (Sum 0))
150 . S.map Sum
151 . S.map Sum
153+{-# INLINE consumeIterateM #-}
154+consumeIterateM :: Monad m => SerialT m Int -> m ()
158+ . Internal.consumeIterateM
159+ (Consumer.take 2 Consumer.sconcat) (return (Sum 0))
152o_1_space_grouping :: Int -> [Benchmark]
162o_1_space_grouping :: Int -> [Benchmark]
153o_1_space_grouping value =
163o_1_space_grouping value =
154 -- Buffering operations using heap proportional to group/window sizes.
164 -- Buffering operations using heap proportional to group/window sizes.
@@ -160,6 +170,7 @@ o_1_space_grouping value =
160 , benchIOSink value "groupsByRollingEq" groupsByRollingEq
170 , benchIOSink value "groupsByRollingEq" groupsByRollingEq
161 , benchIOSink value "foldMany" foldMany
171 , benchIOSink value "foldMany" foldMany
162 , benchIOSink value "foldIterateM" foldIterateM
172 , benchIOSink value "foldIterateM" foldIterateM
173+ , benchIOSink value "consumeIterateM" consumeIterateM