Hi -- On Thu, 20 Feb 2003, Yukihiro Matsumoto wrote: > I can remain "don't care" for referencing, but not for creation. > That's the reason. If "module C::D" form requires C to be defined > previously, we don't care whether it's a class or module, but I > thought it suppose to define C if it doesn't exist. That's the autovivification we were talking about earlier in the thread. I think the consensus is against it. I certainly think it would be very bad. > |My feeling is that module A::B should be even *less* smart than you're > |saying :-) To me, "module A::B::C::D" should mean: "Create (or reopen) > |a module called D, with a path through A, B, and C". An error should > |only happen if that path is impossible (e.g., if B is an integer > |instead of a class or module). > > So you require A, B and C to be either class or module predefined. Yes. > That's reasonable. But I feel like it's less useful, but without any > concrete rationale. Let us discuss. I guess the rationale would mainly be consistency with the reference notation: module A module B Thing = 1 end end puts A::B::Thing A::B::OtherThing = 2 # create OtherThing, using shorthand path module A::B::SomeModule # likewise with a new module # ... end and to save some space. I don't think it's urgently needed (original poster? are you still here? :-) and if the subclassing syntax/scoping problems mentioned earlier are too much, it's probably not a good idea. David -- David Alan Black home: dblack / candle.superlink.net work: blackdav / shu.edu Web: http://pirate.shu.edu/~blackdav