Imagine: pugs> '1.28' * '2.56' 3.2768
What is (or should be) going on here here? [1] role NumRole { method infix:<*> returns Num (NumRole $x, NumRole $y: ) { ... } } Str.does(NumRole); [2] multi sub infix:<*> (Str $x, Str $y) returns Num { ... } [3] multi sub prefix:<+> (Str $x) returns Num { ... } multi sub infix:<*> (Num $x, Num $y) returns Num { ... } multi sub infix:<*> (Any $x, Any $y) returns Num { +$x * +$y } [4] multi sub infix:<*> (Num $x, Num $y) returns Num { +$x * +$y } # ...and the MMD dispatcher forces incompatible type into # the type with shared ancestors and closest distance... [5] none of the above -- that should be a type error. ;) [6] something else? Thanks /Autrijus/
pgp4AcX2zxMFU.pgp
Description: PGP signature