module Data.Enumerator where import qualified Control.Exception as Exc data Stream a data Step a m b = Continue (Stream a -> Iteratee a m b) | Yield b (Stream a) | Error Exc.SomeException newtype Iteratee a m b = Iteratee { runIteratee :: m (Step a m b) }