Clojure macro to support infix expressions, using combinator parsing