In addition, this module provides many functions equivalent to lazy
BS.ByteString functions so that you can transform or fold byte streams. For
example, to stream only the first three lines of stdin to stdout you
would write:

The above program will never bring more than one chunk (~ 32 KB) into
memory, no matter how long the lines are.

Note that functions in this library are designed to operate on streams that
are insensitive to chunk boundaries. This means that they may freely split
chunks into smaller chunks and discard empty chunks. However, they will
never concatenate chunks in order to provide strict upper bounds on memory
usage.

Note: toLazyM is not an idiomatic use of pipes, but I provide it for
simple testing purposes. Idiomatic pipes style consumes the chunks
immediately as they are generated instead of loading them all into memory.