As the conduit- and pipes-style streaming abstractions continue to gain popularity, it is useful to take a look at an even higher abstraction from which they can be built: coroutines.
In this series, we will learn about coroutines in general, select a particular "suspension functor," and then rebuild the Proxy type from pipes. This will help you understand the nature of control passing that underlies conduit and pipes.