On Fri, 19 Aug 2016 14:04:10 -0700, zef...@fysh.org wrote: > > (0e0).WHICH > Num|0 > > (-0e0).WHICH > Num|-0 > > 0e0 === -0e0 > True > > These two Num values are distinct: they are the floating-point signed > zeroes, which have different numeric behaviour in some situations. > The .WHICH values correctly distinguish them. The === operator is > incorrect in saying that they are the same object. The same problem > arises with Complex numbers with zero real or imaginary parts: > > > <-0+0i>.WHICH > Complex|-0|0 > > <0+0i>.WHICH > Complex|0|0 > > <0-0i>.WHICH > Complex|0|-0 > > <-0-0i>.WHICH > Complex|-0|-0 > > <-0+0i> === <0+0i> === <0-0i> === <-0-0i> > True > > -zefram
Thank you for the report. The Num case was fixed awhile back as part of RT#128395. The Complex is now fixed as well. Fix: https://github.com/rakudo/rakudo/commit/55cf6fa9e1 Tests: https://github.com/perl6/roast/commit/15c0978fed