;; An exception to the docstring:
(not= ##NaN ##NaN)
;; => false
(not (= ##NaN ##NaN))
;; => true
;; This is because of various shortcuts for checking identity when checking equality.
;; As a rule of thumb, don't rely on either for testing against the ##NaN literal.
;; Decide on which logic you want, and explicitly test. E.g.
(defn != [x y]
(or (not= x y)
(NaN? x)
(NaN? y)))
(!= ##NaN ##NaN)
;; => true