Clojure port of Shaderforth