Larry (>): > [Long exposition on the philosophy of predeclaration] > > Hope this helps, or I just wasted a lot of time. :-)
It did help. Thanks. A comment on one part, though: > But I also think that type recursion is likelier to indicate a design > error than function recursion [...] I do too. A month or so ago I would have considered type recursion to always indicate a design error. That was before I started trying to port type cycles in a program making sensible use of them. :) As far as I can see, the two cases of type recursion in PGE I outlined do not indicate a design error. I'd be happy to chat with anyone who has an idea about how they could be simplified away and replaced by something non-ugly. Another thing I started thinking about: if Perl 6 professes to be able to put on the hat -- syntactically and semantically -- of most any other programming language out there, through the use of a simple 'use Language::Java' or 'use Language::Ruby' -- how will Perl 6 compensate for the fact that its parser is one-pass whereas most other languages do two passes or more? Specifically, will some programs in those other languages fail to compile under a Perl 6 language module due to the fact that a type keyword was referred to before it was declared? If multiple passes introduce linguistic race conditions, what about outright linguistic infelicities due to the Perl 6 limitation of one-pass parsing? // Carl