Digite dicas em macros clojure

Dicas de tipo devem ser adicionadas aos símbolos. Veja como fazer isso para o tipo de retorno da função:

(defmacro defthreadlocal [name & body]
`(def ~(with-meta name {:tag ThreadLocal})
(proxy [ThreadLocal] []

(initialValue []

~@body))))

E aqui está como fazer isso para args:

(defmacro declare-first-char []
(let [s (gensym)]
`(defn first-char [~(with-meta s {:tag String})]
(.charAt ~s 0))))