@, $, % does not really define a type system. It just offers different ways of organizing your data. I understand that in your mind, an Array is a type. But saying that in Perl6 $, @ and % define a type is not the same.
Vanilla Perl5 has no types, but containers. It is the same in perl6 (at least, that is how i see it)
my @a = (1,2); say @a.WHAT; # prints Array()
my Int @b = (3,4); say @b.WHAT; # prints Array+{TypedArray}()