Perhaps I can clarify why the 1.3 behavior is confusing. For those who have focused on issues like "primitives need to be boxed, therefore you get a long" - I think you are missing Nathan's point. Here is what changed about boxing in 1.3:
Clojure 1.2: (class (Long/parseLong "1")) => java.lang.Long (class (Integer/parseInt "1")) => java.lang.Integer (class (Short/parseShort "1")) => java.lang.Short (class (Byte/parseByte "1")) => java.lang.Byte (class (Float/parseFloat "1")) => java.lang.Float (class (Double/parseDouble "1")) => java.lang.Double Clojure 1.3: (class (Long/parseLong "1")) => java.lang.Long (class (Integer/parseInt "1")) => java.lang.Long (class (Short/parseShort "1")) => java.lang.Short (class (Byte/parseByte "1")) => java.lang.Byte (class (Float/parseFloat "1")) => java.lang.Float (class (Double/parseDouble "1")) => java.lang.Double So the issue is not "why do primitives get boxed at all?" - it is "why are primitive ints, uniquely amongst all primitive types, singled out and boxed as a wrapper type that is not the analogue of their primitive type?" I suspect that this is what Nathan is objecting to. - Chris -- 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