There was an attempt to fix this in 4d85cde9, and it does avoid clashes between class objects, but it's introduced a new kind of .WHICH clash:
> Int.WHICH Int|29060856 > for Int, 29060856 { say (.WHICH, .DEFINITE) } (Int|29060856 False) (Int|29060856 True) > Int === 29060856 True -zefram