@@ -94,6 +94,10 @@ takeWhile value = IP.parseD (drainWhile (<= value))
94takeP :: MonadThrow m => Int -> SerialT m a -> m ()
94takeP :: MonadThrow m => Int -> SerialT m a -> m ()
95takeP value = IP.parseD (PR.takeP value (PR.fromFold FL.drain))
95takeP value = IP.parseD (PR.takeP value (PR.fromFold FL.drain))
97+{-# INLINE takeBetween #-}
98+takeBetween :: MonadCatch m => Int -> SerialT m a -> m ()
99+takeBetween value = IP.parseD (PR.takeBetween 0 value FL.drain)
97{-# INLINE groupBy #-}
101{-# INLINE groupBy #-}
98groupBy :: MonadThrow m => SerialT m Int -> m ()
102groupBy :: MonadThrow m => SerialT m Int -> m ()
99groupBy = IP.parseD (PR.groupBy (<=) FL.drain)
103groupBy = IP.parseD (PR.groupBy (<=) FL.drain)
@@ -318,6 +322,7 @@ o_1_space_serial :: Int -> [Benchmark]
318o_1_space_serial value =
322o_1_space_serial value =
319 [ benchIOSink value "takeWhile" $ takeWhile value
323 [ benchIOSink value "takeWhile" $ takeWhile value
320 , benchIOSink value "takeP" $ takeP value
324 , benchIOSink value "takeP" $ takeP value
325+ , benchIOSink value "takeBetween" $ takeBetween value
321 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
326 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
322 , benchIOSink value "groupBy" $ groupBy
327 , benchIOSink value "groupBy" $ groupBy
323 , benchIOSink value "groupByRolling" $ groupByRolling
328 , benchIOSink value "groupByRolling" $ groupByRolling