iteratee- Iteratee-based I/O

Safe HaskellSafe-Infered




ioIter :: (MonadIO m, Nullable s) => (a -> IO (Either b (Iteratee s m a))) -> a -> Iteratee s m bSource

Use an IO function to choose what iteratee to run. -- Typically this function handles user interaction and -- returns with a simple iteratee such as head or seek. -- -- The IO function takes a value of type a as input, and -- should return 'Right a' to continue, or 'Left b' -- to terminate. Upon termination, ioIter will return 'Done b'. -- -- The second argument to ioIter is used as the initial input -- to the IO function, and on each successive iteration the -- previously returned value is used as input. Put another way, -- the value of type a is used like a fold accumulator. -- The value of type b is typically some form of control code -- that the application uses to signal the reason for termination.