@@ -97,6 +97,10 @@ sliceBeginWith value stream = do
9797takeWhile :: MonadCatch m => Int -> SerialT m Int -> m ()
9898takeWhile value = IP.parse (PR.takeWhile (<= value) FL.drain)
9999
100+{-# INLINE takeP #-}
101+takeP :: MonadCatch m => Int -> SerialT m a -> m ()
102+takeP value = IP.parse (PR.takeP value (PR.fromFold FL.drain))
103+
100104{-# INLINE groupBy #-}
101105groupBy :: MonadCatch m => SerialT m Int -> m ()
102106groupBy = IP.parse (PR.groupBy (<=) FL.drain)
@@ -327,6 +331,7 @@ o_1_space_serial value =
327331 [ benchIOSink value "takeBetween" $ takeBetween value
328332 , benchIOSink value "takeEQ" $ takeEQ value
329333 , benchIOSink value "takeWhile" $ takeWhile value
334+ , benchIOSink value "takeP" $ takeP value
330335 , benchIOSink value "drainWhile" $ drainWhile value
331336 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
332337 , benchIOSink value "groupBy" $ groupBy