+str: Implement efficient stream op DSL

Explanation in the doc comment for Interpreter
I have the feeling that this last half-sentence should not be there: if a termination signal needs to be absorbed then the machine should probably wait for more downstream demand to empty it out, no?