Example:
`
(defrecord ABC [some-field])
(def ^:const abc (->ABC :some-value))
(println (class abc))
(defrecord XYZ [])
(def ^:const xyz (->XYZ))
(println (class xyz))
`
results in
"sx.clj.temp.ABC
clojure.lang.PersistentArrayMap"
The XYZ seems to lose its class information, and is apparently stored as a simple map, instead of a record. I could not find the official specification of ^:const, but this behaviour seems incorrect to me, or at least inconsistent.