On Tue, Aug 16, 2011 at 17:01, Haase, Konstantin <Konstantin.Haase / student.hpi.uni-potsdam.de> wrote: > What would ObjectSpace.each_object(String) { |o| p o } produce? All the strings (including frozen ones). > It would also largely violate the Liskov substitution principle. Having a common superclass or String being the subclass for Symbol should be possible, though. > > Konstantin The proposal is to remove the Symbol class altogether. :foo becomes simply a shortcut for string_cache['foo'] and is *always* a frozen String.