Carl Mäsak wrote: > But on another level, the level of types, Perl 6 makes it fairly > *un*natural that the type C<Foo> refers to the type C<Bar>, which in > turn refers to the type C<Foo>.
True, and that has also been bothering me quite a bit. The "solution" is to always write ::Typename instead of Typename.... except when it isn't a solution. First of all in signatures ::T means actually "type capture", secondly I guess that some constructs really want to resolve type names at compile time -- for example the multi dispatcher needs to know the inheritance structure of a type in order to its pre-sorting of signatures. The first problem could be solved by introducing another syntax for type captures (perhaps :>foo or so?), of the second I know too little to really comment on it. Cheers, Moritz