OK, what is the proper use of ::?CLASS ? Say in a role you want to take an argument of the same class as the final class, or explicitly declare $self. S12 gives an example:
method doit (::?CLASS $self: $a, $b, $c) { ... } but this CONTRADICTS the idea that using the :: sigil in a declaration declares a generic type. And you can't spell ?CLASS without the sigil because you never have a twigil without a sigil and ?CLASS is not a legal identifier. The example of my @candidates := $object.WALK(:name<foo>, :breadth, :omit($?CLASS)); doesn't shed any light. The meaning of $?CLASS is never explained. Just a cryptic line in S02 "what class am I in (as variable)". Is the same Type object accessible as the value of the item with the $ sigil? Why is this necessary? I wonder if it has something to do with problems using the :: sigil that I'm musing with. --John