Semantics of PORT!s vs. Streams vs. Iterators

As a practical matter, streaming interfaces tend to have to pick arbitrary block sizes of some maximum of how much they read at a time.

My concept for READ was that if you did not qualify it, then it would mean "read everything":

Semantics of READ and TCP Streams: Past And Future

But then you have the question of reading a maximum of a certain number of bytes, vs. reading exactly a certain number of bytes.

A one-byte-at-a-time interface is a good place to start, but all practical streaming code has to enable bigger chunks.

I definitely think that non-trivial layered examples are important to consider.

I also think the design would be very influenced by generator and yielder:

YIELDER and GENERATOR (and thinking about Coroutines)

But I'm trying not to rush those, because the system really needs to stabilize and have things hammered down. There is a lot of "technical debt" that needs to be paid off...