@@ -13,6 +13,7 @@ module Streamly.Internal.Data.Unfold.Type
13 , mkUnfoldM
13 , mkUnfoldM
14 , mkUnfoldrM
14 , mkUnfoldrM
15 , unfoldrM
15 , unfoldrM
16 , functionM
17 , functionM
17 , function
18 , function
18 , identity
19 , identity
@@ -118,6 +119,14 @@ unfoldrM next = Unfold step pure
118 Just (x, s) -> Yield x s
119 Just (x, s) -> Yield x s
119 Nothing -> Stop) <$> next st
120 Nothing -> Stop) <$> next st
122+-- | Like 'unfoldrM' but uses a pure step function.
126+{-# INLINE unfoldr #-}
127+unfoldr :: Applicative m => (a -> Maybe (b, a)) -> Unfold m a b
128+unfoldr step = unfoldrM (pure . step)
121------------------------------------------------------------------------------
130------------------------------------------------------------------------------
122-- Map input
131-- Map input
123------------------------------------------------------------------------------
132------------------------------------------------------------------------------