"jonathan <zjll9 / imail.etsu.edu> <zjll9 / imail.etsu.edu> <zjll9 / imail.etsu.edu>" <zjll9 / imail.etsu.edu> wrote: > > Hmm.. Ok. But, with Ruby, you can still dynamically create subclasses > that aren't singletons and extend them as well as instanciate instances > of them, right? That would provide the flexibility I was referring to > above, but I suppose it would require typing quite a few more > characters. So do I understand correctly that Matz designed the whole > singleton creation mechanism ( << ) as a shorthand for doing more > long-winded dynamic creation/enhancing? It's not a subclass, it's an anonymous proxy superclass. It goes into the inheritance chain between the object it extends and the class that object derived from, like so (assume a is a String): [String] --- [class << a] --- [a] Since ruby doesn't have multiple inheritance, you can see why there can (and need!) only be a single proxy superclass. martin