From: MenTaLguY Date: 2006-05-06T01:16:55+09:00 Subject: Ruby 2.0: Symbol uniqueness? I just learned yesterday that different string values can intern to the same symbols; for example: p "!".intern == "!@".intern # => true p "-(unary)".intern == "-@".intern # => true There aren't many such cases, but it makes life awkward if you're writing code where two such strings are valid input (e.g. "!" and "!@" are both valid, if unusual, identifiers in Scheme s-expressions). This seems to be a side-effect of the current implementation of unary operators in Ruby 1.x -- is it slated for change in Ruby 2.0? I think it'd be nice if Ruby symbols were guaranteed to uniquely represent string values, and x.intern.to_s == x were an invariant for non-empty strings. -mental