I could be wrong, but I think that you cannot attach metadata to a number:
user=> (with-meta 1 {:meta-tag "foo"}) java.lang.ClassCastException: java.lang.Integer cannot be cast to clojure.lang.IObj
From docs
"Symbols and collections support metadata, a symbol or collection data map.
It seemed to work:
user=> {:a (with-meta 'foo {:meta-tag "foo"})} {:a foo}
and
user=> (meta (:a {:a (with-meta 'foo {:meta-tag "foo"})})) {:meta-tag "foo"}
source share