On Dec 11, 2007, at 9:08 PM, Yukihiro Matsumoto wrote:
> !@ and ~@ are aliases to ! and ~ respectively.  Since they are
>  aliases, :"!@" give the same symbol as :"!".


So in trunk:

irb>  h = { :"!" => 1, :"!@" => 2}
=> {:"!"=>2}

Breaking the one-to-one mapping between bytes in a string and
the identity of a symbol breaks the entire symbol abstraction
for me.

Just because a Ruby method has two names doesn't mean that those
two names are synonymous in general.

Gary Wright