I'm not sure if the `_equal` is always guaranteed. 
Floating point calculations could still introduce a noise, but maybe not in this case (1. * x + 0. * y == x) ?  IIUC