An enumeratee is an enumerator that produces an iteratee using another iteratee as input.
Enumeratees can be used for tasks such as encoding or encrypting data.
The iteratee is a stream consumer that will consume a stream of data until either
it receives an EOF or meets its own requirements for consuming data. The iteratee
will return Continue whenever it is ready to receive the next chunk. An iteratee
is fed data by an Enumerator, which generates a Stream.
A stream of chunks of data generated by an Enumerator.
The stream can be composed of chunks of 'T, empty blocks indicating a wait, or an EOF marker.
Be aware that when using #seq<_> types, you will need to check for both Seq.empty ([]) and Empty.