Buffers an iteratee, "unsafely". Here we use a fixed binary buffer
which we'll re-use, meaning that if you hold on to any of the bytestring
data passed into your iteratee (instead of, let's say, shoving it right out
a socket) it'll get changed out from underneath you, breaking referential
transparency. Use with caution!

Buffers an iteratee, "unsafely". Here we use a fixed binary buffer
which we'll re-use, meaning that if you hold on to any of the bytestring
data passed into your iteratee (instead of, let's say, shoving it right out
a socket) it'll get changed out from underneath you, breaking referential
transparency. Use with caution!

The primary data type for this library, which consumes
input from a Stream until it either generates a value or encounters
an error. Rather than requiring all input at once, an iteratee will
return Continue when it is capable of processing more data.

In general, iteratees begin in the Continue state. As each chunk is
passed to the continuation, the iteratee returns the next step:
Continue for more data, Yield when it's finished, or Error to
abort processing.

Enumerators typically read from an external source (parser, handle,
random generator, etc). They feed chunks into an Iteratee until the
source runs out of data (triggering EOF) or the iteratee finishes
processing (Yields a value).

Runs the iteratee, and calls an exception handler if an Error is
returned. By handling errors within the enumerator library, and requiring
all errors to be represented by SomeException, libraries with
varying error types can be easily composed.