like "Constructive Mathematics in F#", except in Clojure