Someone suggested I read the original John Hughes paper explaining Why Functional Programming Matters. That someone was right: despite the tortured syntax of Miranda, it’s highly literate and readable. (Would be slightly more useful if updated/annotated with Haskell or Clojure sample code.). This is where generators and lazy evaluation and their kindred concepts first were introduced to the broader community. Worth reading.