It might be a good idea to make it so that zero compared with non-zero is consistently unequal (rather than erratically as with only the `compare_uint` change). Doing so could look like this:
```diff - if (x < 0) - x = INT_MIN - x; - if (y < 0) - y = INT_MIN - y; + if (x == INT_MIN) + x = 0; + if (y == INT_MIN) + y = 0; + if (x == 0 || y == 0) + return x == 0 && y == 0; ```