+str: Implement efficient stream op DSL

Explanation in the doc comment for Interpreter
A huge chain of take(1).take(2).take(1).take(2)... would actually trigger a stackoverflow. I will add a stresstest.