Parsing in Clojure via a Backtracking State Monad · HackerTrans