Protocol oriented programming

There is this nice duality between prefix/postfix that I find hard to
articulate, but that always comes up. Stream data is prefix because
it needs to "announce" the meaning of the data, but parsers are
postfix so they can "gather" context as the data streams in.