After reading through the links that Chas provided, here's a summary of the main points as I see them:
1. Looking through the history of this issue, no one was actually asking to be protected from accidentally typing duplicate keys in a map or set. 2. People *were* asking to be protected from the fact that ArrayMap's behavior was inconsistent with other maps, because this led to unpredictability (since map literal notation would choose different underlying implementations in a way that wasn't entirely transparent). 3. Rich expressed that he wasn't sure the cost of a duplicate-key check was worth it to fix this issue. 4. Someone eventually decided it was worth the cost of a duplicate-key check to fix the semantic mismatch between ArrayMaps and other maps, but instead of using this check to bring ArrayMaps into concordance with other maps, used the duplicate-key check to throw a hard error for a wide variety (but not all) of maps and sets. 5. This adds semantic complexity and breaks code, in surprising ways, at run-time. Not good. 6. Solution: Put hash maps and hash sets back to the way they were -- they worked perfectly fine. Use the duplicate key check in ArrayMap to make ArrayMaps behave like all the other maps, i.e., last instance of a key wins. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en