This is the paper written by Melvin Conway in 1963 which introduced the term “coroutine” to the computing literature. A nice quote near the beginning:
That property of the design which makes it amenable to many segment configurations is its separability. A program organization is separable if it is broken up into processing modules which communicate with each other according to the following restrictions: (I) the only communication between modules is in the form of discrete items of information; (2) the flow of each of these items is along fixed, one-way paths; (3) the entire program can be laid out so that the input is at the left extreme, the output is at the right extreme, and everywhere in between all information items flowing between modules have a component of motion to the right.
And near the end: