я пытаюсь создать небольшой макрос Clojure, который def
sa String с подсказкой типа:
(defmacro def-string [name value]
`(def ^String ~name ~value))
(def-string db-host-option "db-host")
Когда я macroexpand
it, подсказка типа теряется:
(macroexpand '(def-string db-host-option "db-host"))
;=> (def db-host-option "db-host")
Неважно мудрость подсказки типа.
Почему макрос теряет метаданные? Как мне написать этот макрос или любой другой, содержащий метаданные?