Using `^:const` can lead to some funky behaviour, like the one you're seeing.
AFAIK The only official documentation about it can be found in the clojure 1.3
changelog,
https://github.com/clojure/clojure/blob/master/changes.md#215-const-defs where
it is described as "^:const lets you name primiti
Adding ^:const to a var seems to change the data type sometimes:
user> (def ^:const time1 (java.sql.Timestamp. 1)
#'user/time1
user> (def time2 (java.sql.Timestamp. 1)
#'user/time2
user> (type time1)
java.util.Date
user> (type time2)
java.sql.Timestamp
The upshot is that while (=