The reason that we list evaluate methods with all numeric types is for
better performance; otherwise a single method that takes (Number a, Number b)
and use a.doubleValue() == b.doubleValue() is enough.
The reason that we list evaluate methods with all numeric types is for
both better performance and type checking (so we know int + int is still an int
instead of a double); otherwise a single method that takes (Number a, Number b)
and use a.doubleValue() == b.doubleValue() is enough.