On Sunday, February 16, 2003, 4:01:47 AM, dblack wrote:

> Hi --

> On Sat, 15 Feb 2003, Gavin Sinclair wrote:

>> On Friday, February 14, 2003, 2:00:56 PM, Bil wrote:
>>
>> > dblack / candle.superlink.net wrote:
>> >>
>> >> so there's no way to determine from the :: notation what you're
>> >> intending to create.
>>
>> > Excellent point.
>>
>> However, since the idea of the "module" keyword is to introduce a new
>> module or reuse an existing one, I don't see why the OP's idea
>> couldn't work.

> I assumed he meant a kind of autovivification, so that the first
> line in a program could be:

>   module A::B::C

> which would suffer from the ambiguity I mentioned.  But if it's
> incremental -- i.e., if the above requires that A and B already exist
> and be a valid path to a new module definition (namely, C) -- that
> seems OK.

I don't see a problem with autovivification, though.  If the first
line in a program is

  module A::B::C

what conceptually prevents this from being equivalent to

  module A
    module B
      module C

?

Naturally, if A::B is a (non-Module) constant, then an error would
result.

Gavin