@@ -110,15 +110,17 @@ benchIOSink value name f =
110-- Parsers
110-- Parsers
111-------------------------------------------------------------------------------
111-------------------------------------------------------------------------------
113−{-# INLINE next #-}
113+{-# INLINE one #-}
114−next :: MonadCatch m => Int -> SerialT m Int -> m (Maybe Int)
114+one :: MonadCatch m => Int -> SerialT m Int -> m (Maybe Int)
115−next value = IP.parse p
115+one value = IP.parse p
118− m <- PR.next
120+ m <- PR.fromFold FL.one
119− case m of
121+ case m of
120− Just i -> if i >= value then pure m else p
122+ Just i -> if i >= value then pure m else p
121− Nothing -> pure Nothing
123+ Nothing -> pure Nothing
123{-# INLINE takeBetween #-}
125{-# INLINE takeBetween #-}
124takeBetween :: MonadCatch m => Int -> SerialT m a -> m ()
126takeBetween :: MonadCatch m => Int -> SerialT m a -> m ()
@@ -411,7 +413,7 @@ moduleName = "Data.Parser"
412o_1_space_serial :: Int -> [Benchmark]
414o_1_space_serial :: Int -> [Benchmark]
413o_1_space_serial value =
415o_1_space_serial value =
414− [ benchIOSink value "next" $ next value
416+ [ benchIOSink value "one (fold)" $ one value
415 , benchIOSink value "takeBetween" $ takeBetween value
417 , benchIOSink value "takeBetween" $ takeBetween value
416 , benchIOSink value "takeEQ" $ takeEQ value
418 , benchIOSink value "takeEQ" $ takeEQ value
417 , benchIOSink value "takeWhile" $ takeWhile value
419 , benchIOSink value "takeWhile" $ takeWhile value