module DeferredFolds.Defs.UnfoldrM where import DeferredFolds.Prelude import DeferredFolds.Types unfoldr :: Monad m => Unfoldr a -> UnfoldrM m a unfoldr (Unfoldr unfoldr) = UnfoldrM $ \ stepM -> let step input act state = stepM input state >>= act in unfoldr step return