The segfaults are mostly gone. Only on parrot there is a Null PMC Access, but only for two of the four examples. With said two examples there is an (non segfaulting) error on Moar and JVM as well:
$ perl6 -e 'role S[::N] { N::x }' ## no error on Moar, Parrot and JVM $ perl6 -e 'sub foo(::N) { N::x }' ## no error on Moar, Parrot and JVM $ perl6-m -e 'my (::N); N::x' Cannot call method 'at_key' on a null object in block <unit> at -e:1 $ perl6-j -e 'my (::N); N::x' Can not call method 'at_key' on a null object in block <unit> at -e:1 $ perl6-p -e 'my (::N); N::x' Null PMC access in find_method('at_key') in block <unit> at -e:1 $ cat 122716.pl6 role Zero { constant count = 0; } role Suc[::N] { constant count = 1 + N::count; } subset _0 of Zero; subset _1 of Suc[Zero]; subset _2 of Suc[_1]; say Suc[Suc[Suc[Zero]]]::count; $ perl6-m 122716.pl6 ===SORRY!=== Cannot call method 'at_key' on a null object $ perl6-j 122716.pl6 ===SORRY!=== Can not call method 'at_key' on a null object $ perl6-p 122716.pl6 ===SORRY!=== Null PMC access in find_method('at_key')