@@ -74,16 +74,17 @@ module Streamly.Streams.StreamK
7474 -- * Elimination
7575 -- ** General Folds
7676 , foldr
77+ , foldr1
7778 , foldrM
7879 , foldrS
7980 , foldrT
80− , foldr1
81+
8182 , foldl'
8283 , foldlM'
8384 , foldlS
8485 , foldlT
85− , foldx'
86− , foldxM'
86+ , foldlx'
87+ , foldlMx'
8788
8889 -- ** Specialized Folds
8990 , runStream
@@ -410,10 +411,10 @@ foldr1 step m = do
410411-- @foldl@ library. The suffix @x@ is a mnemonic for extraction.
411412--
412413-- Note that the accumulator is always evaluated including the initial value.
413−{-# INLINE foldx' #-}
414−foldx' :: forall t m a b x. (IsStream t, Monad m)
414+{-# INLINE foldlx' #-}
415+foldlx' :: forall t m a b x. (IsStream t, Monad m)
415416 => (x -> a -> x) -> x -> (x -> b) -> t m a -> m b
416−foldx' step begin done m = get $ go m begin
417+foldlx' step begin done m = get $ go m begin
417418 where
418419 {-# NOINLINE get #-}
419420 get :: t m x -> m b
@@ -440,14 +441,14 @@ foldx' step begin done m = get $ go m begin
440441-- | Strict left associative fold.
441442{-# INLINE foldl' #-}
442443foldl' :: (IsStream t, Monad m) => (b -> a -> b) -> b -> t m a -> m b
443−foldl' step begin = foldx' step begin id
444+foldl' step begin = foldlx' step begin id
444445
445446-- XXX replace the recursive "go" with explicit continuations.
446447-- | Like 'foldx', but with a monadic step function.
447−{-# INLINABLE foldxM' #-}
448−foldxM' :: (IsStream t, Monad m)
448+{-# INLINABLE foldlMx' #-}
449+foldlMx' :: (IsStream t, Monad m)
449450 => (x -> a -> m x) -> m x -> (x -> m b) -> t m a -> m b
450−foldxM' step begin done m = go begin m
451+foldlMx' step begin done m = go begin m
451452 where
452453 go !acc m1 =
453454 let stop = acc >>= done
@@ -458,7 +459,7 @@ foldxM' step begin done m = go begin m
458459-- | Like 'foldl'' but with a monadic step function.
459460{-# INLINE foldlM' #-}
460461foldlM' :: (IsStream t, Monad m) => (b -> a -> m b) -> b -> t m a -> m b
461−foldlM' step begin = foldxM' step (return begin) return
462+foldlM' step begin = foldlMx' step (return begin) return
462463
463464-- | Lazy left fold to a stream.
464465{-# INLINE foldlS #-}
@@ -584,7 +585,7 @@ any p m = go m
584585-- | Extract the last element of the stream, if any.
585586{-# INLINE last #-}
586587last :: (IsStream t, Monad m) => t m a -> m (Maybe a)
587−last = foldx' (\_ y -> Just y) Nothing id
588+last = foldlx' (\_ y -> Just y) Nothing id
588589
589590{-# INLINE minimum #-}
590591minimum :: (IsStream t, Monad m, Ord a) => t m a -> m (Maybe a)