With Rakudo commit we get the same output on MoarVM and JVM: $ ./perl6-j -e 'sub aa (Mu:D $a) { }; aa(Int)' Parameter '$a' requires an instance of type Mu, but a type object was passed. Did you forget a .new? in sub aa at -e line 1 in block <unit> at -e line 1
$ ./perl6-j -e 'sub aa (Mu:U $a) { }; aa(3)' Parameter '$a' requires a type object of type Mu, but an object instance was passed. Did you forget a 'multi'? in sub aa at -e line 1 in block <unit> at -e line 1 I'm closing this ticket as 'resolved'.