packages feed

deferred-folds-0.9.18.1: library/DeferredFolds/Defs/UnfoldrM.hs

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