@@ -97,6 +97,10 @@ sliceBeginWith value stream = do
97takeWhile :: MonadCatch m => Int -> SerialT m Int -> m ()
97takeWhile :: MonadCatch m => Int -> SerialT m Int -> m ()
98takeWhile value = IP.parse (PR.takeWhile (<= value) FL.drain)
98takeWhile value = IP.parse (PR.takeWhile (<= value) FL.drain)
101+takeP :: MonadCatch m => Int -> SerialT m a -> m ()
102+takeP value = IP.parse (PR.takeP value (PR.fromFold FL.drain))
100{-# INLINE groupBy #-}
104{-# INLINE groupBy #-}
101groupBy :: MonadCatch m => SerialT m Int -> m ()
105groupBy :: MonadCatch m => SerialT m Int -> m ()
102groupBy = IP.parse (PR.groupBy (<=) FL.drain)
106groupBy = IP.parse (PR.groupBy (<=) FL.drain)
@@ -327,6 +331,7 @@ o_1_space_serial value =
327 [ benchIOSink value "takeBetween" $ takeBetween value
331 [ benchIOSink value "takeBetween" $ takeBetween value
328 , benchIOSink value "takeEQ" $ takeEQ value
332 , benchIOSink value "takeEQ" $ takeEQ value
329 , benchIOSink value "takeWhile" $ takeWhile value
333 , benchIOSink value "takeWhile" $ takeWhile value
334+ , benchIOSink value "takeP" $ takeP value
330 , benchIOSink value "drainWhile" $ drainWhile value
335 , benchIOSink value "drainWhile" $ drainWhile value
331 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
336 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
332 , benchIOSink value "groupBy" $ groupBy
337 , benchIOSink value "groupBy" $ groupBy