Monads explained in Clojure by Brian Marick | Hacker News Reader