Также обратите внимание, что (def another-var (with-meta a-var {:foo :bar}))
привязывает метаданные не к Var , а к значению . А поскольку в вашем примере a-var
содержит целое число, я не ожидаю, что ваш пример будет работать вообще, поскольку целые числа не могут содержать метаданные.
user=> (def a-var 2)
#'user/a-var
user=> (def another-var (with-meta a-var {:foo :bar}))
java.lang.ClassCastException: java.lang.Integer cannot be cast to clojure.lang.IObj (NO_SOURCE_FILE:2)