Vaporware announcement: I've been trying today to make streams and generators duals. So (read stream) and (yield value) would be ways to bounce control between an input stream and its user.
I started playing with this after rocketnia's observation about accum (http://arclanguage.org/item?id=14198), which name had been bothering me ever since I started using waterhouse's accumulate on a regular basis. "Ooh, so I can replace (accum acc ... (acc x)) with just (as list ... (yield x))? Sign me up."
But what about output streams? I'm still thinking..