Data.Iteratee.IO.Interact
Documentation
ioIter :: (StreamChunk s el, MonadIO m) => (a -> IO (Either b (IterateeG s el m a))) -> a -> IterateeG s el 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.