Parsing with derivatives in Clojure