Speaking of > i might add that i hope whatever keys object will hash key and symbol > arguments the same so we can do > > val = keys['foo'] > > or > > val = keys[:foo] Has it ever been considered making String a de-immutablized subclass of Symbol? Would this allow for a natural coersion of Symbols to Strings, akin to Integer to Float? The above is a common enough occurance. And in general I can't think of a signifficant occurance in which I needed to distingusih a symbol from a string of the same basic value (ie. :foo and 'foo') for the same parameter. I suspect there really is no good reason to ever do so --b/c if you are, you're doing something rather tricky that probably should be done another way. Of course if anyone's got a good counter example please share. Not that I've fully work this idea through, but I suppose the upshot would be two fold: 1) Certain method could coerce symbol to string when deemed appropriate, such a Hash#[]. 2) If a Symbol doesn't respond to a method then coerce to String and try that. (Perhaps certain methods would need to be excluded?) This raises one other issue that hadn't occured to me before. String in future Ruby will be advance beyond ascii, I assume Symbol will follow suit. True? T.