Hi, > Some points: > - singleton classes don't have their own class variables, but they > can have their own constants > - constant and class var lookup use the lexical scope, so it > depends "where" you do something (that's why bar's C and baz's C > are different) > - (lexical) singleton-class-scopes are skipped when accessing class > vars (that's why [*] changes B's @@var and not A's @@var) > > I hope that helps and doesn't totally confuse you ;-) OK. One hour later, this is became clear... I'd write the points above in a different order: - singleton classes can have their own constants - singleton classes don't have their own class variables. (Lexical) singleton-class-scopes are skipped when accessing class vars - constant and class variable lookup use the lexical scope, so it depends "where" you do something Now... I do have a question. On one hand, I really, really want to know all these fine details. That's just my nature. However, in this case, I must ask: is this going to be *useful* at any point in time? When would you want to set a constant for a singleton class? The rest makes perfect sense to me: a singleton class could realistically need access a class variable. And I realise that I need to know that constant and class variable lookup use the lexical scope. But... singleton constants...? Just curious! Merc.