_Comment made by: hiredman_
I think this is a little more complex than described.
= does compare things in a jvm type independent manner, but it does use what people have taken to calling "equality classes"
(= [1 2] '(1 2))
(= {:a 1} (doto (java.util.HashMap.) (.put :a 1)))
etc.
now for numbers, it seems logical to me, to have floating point and precise numbers in distinct equality classes
in which case, 1.0 and 1 are in distinct equality classes, so not equal.