> Setting aside the question of freezing, why can't ruby share string data > for all strings generated from the same symbol? Because it could generate unexpected aliasing. The normal, expected behaviour is no aliasing: irb(main):001:0> a = :foo.to_s => "foo" irb(main):002:0> b = :foo.to_s => "foo" irb(main):003:0> b << "bar" => "foobar" irb(main):004:0> a => "foo" That's why the string has to be frozen. Regards, Brian.