Ok, so I got to thinking about Parrot and compilation last night. Then something occurred to me, and I'm not sure how it works.
When Perl sees:
class Joe { my $.a; method b {...} } my Joe $j;
Many things happen and some of them will require knowing what the result of the previous thing is.
More to the point, Perl 6's compiler will have to parse "class Joe", create a new object of type Class, parse and execute the following block/closure in class MetaClass, assign the result into the new Class object named Joe and then continue parsing, needing access to the values that were just created in order to further parse the declaration of $j
Erm... no. Not even close, really. There's really nothing at all special about this--it's a very standard user-defined type issue, dead-common compiler stuff. You could, if you wanted, really complicate it, but there's no reason to and unless someone really messes up we're not going to. Just no need.
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk