$ perl6 -e 'my int $i = 3; say $i.^isa(int)'
0
The value read directly out of an int-typed variable (with the type
constraint operating correctly) is apparently not an int. That's a
silly result. The value arrives at the type check in boxed form, of
course, but it's still the same value that the int type is happy to
represent in unboxed form.
-zefram