fix for `compareTo` to never return negative zero