Use clojure.tools.macro to add support for docstrings etc.