I'm sure it's not intentional, but it makes sense. In the first case, the comparison delegates to `r`'s equals() method, which would return false because {:a 1} isn't a `my-record`. In the second case, the comparison delegates to `{:a 1}`'s equals() method, which is a PersistentArrayMap, which would return true, because it's just looking for equality of map entries. Not sure how to make this behave consistently without introducing a lot of weirdness into the language.
-Fred
--
Science answers questions; philosophy questions answers.