This module contains utilities to create and combine pipes that accept chunked input and return unconsumed portions of their internal buffer.
The main interface is an alternative monad instance for Pipe, which passes leftover data along automatically.
Newtype wrapper for Pipe proving a monad instance that takes care of passing leftover data automatically.
ChunkPipe is just a regular pipe, but returns unconsumed
input in a pair alongside the actual return value.