Currently :rettag works only for expressions like:
(defn ^long x [..] ..)
(defn ^double x [..] ..)
But at runtime those type-hints are resolved to
which can cause the compiler to fail, see CLJ-1674 for an example
Patch: clj-1805.patch fixes the bad boolean logic mentioned in the comments.