If you look at the type diagram: https://docs.perl6.org/type/Str#___top
You can see that: Str is Cool is Any is Mu But if you use the ^parents method on a string, you don't get "Cool", instead you get "()": my $stringy = "abc"; say $stringy.^name; # Str say $stringy.^parents; # () say (Str).^parents; # () So what exactly does ^parents tell you about? Is there some other method you could use to trace the chain of ancestors upwards?