+str: Implement efficient stream op DSL

Explanation in the doc comment for Interpreter
Wow, upper bound for PushD and PullD are missing (<: Directive), it seems like I lost some changes somwhere during a revert.