The 'do one thing, and do it well' unix philosophy would be better as 'compose well, then specialise' I think.
miniblog.
Related Posts
I find myself writing .iter().map(|x| ...).collect() really often in Rust. I'm wondering if I should write a helper method on Vec, but it seems less idiomatic.
Iterators compose, but they're less versatile (no indexing) and awkward to return from functions.
Ooh, today I learnt that terminals support italics! Difftastic now uses italics for comments.
Bold/italics are great because they're still visible even when you're showing text in green or red. They compose nicely :)
Env = Map<String, String>
Args = [String]
UnixCommand = (Env, Args, ByteStream) -> (Integer, ByteStream, ByteStream)
Unix command compose pretty darn well, but it's a really weird API. Many of these inputs and outputs are less visible to newcomers too.

