I don't understand all of this discussion, but the following may be helpful. From "The Ruby Way": "Ruby classes are themselves objects, being instances of the metaclass Class. . . . The class Object is at the root of the hierarchy. . . . Object itself is the only object without a superclass." As I understand it, Class cannot be subclassed because it is an object (a kind of metaclass). [You have to start somewhere . . .]. Singleton classes are a direct implementation of the singleton design pattern. (see http://www.rubygarden.org/ruby?SingletonPattern). Ruby's class hierarchy chart is in a comment in the object.c file of the source. The chart notes that all metaclasses are instances of the class 'Class'. But here, matz says there are no metaclasses in Ruby: http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/40537. But after a question about meta-objects and singleton methods (http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/40545) yields the following response from matz: http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/40548. Smalltalk's use of metaclasses, and the problem being addressed, is explained in semi-understandable language here: http://wiki.cs.uiuc.edu/VisualWorks/How+do+metaclasses+work%3F On Thursday, December 12, 2002, at 01:57 AM, Chris Pine wrote: > Hmm.... I see what you're saying, I think. I was going to give you a > counter-example, but I can't because you can't subclass Class. This, > of > course, begs the question: Why can't you subclass Class? > > [snip] > To me, this all seems much more natural. We didn't create any sort of > bizarre "hidden" class (and no matter how cool you may find the > functionality currently provided by singleton classes, they themselves > are > totally exceptional and bizarre) to make everything work. > > So what am I missing? Why can't you subclass Class? Was this for the > sake > of implementation? I can't imagine it's just so we can have singleton > classes. > [snip]