As you can see it only solves part of the problem - the result still can’t be
added with a float value without explicit type coercion, but it solves some
problems where (1) its not clear what type the other value will be, (2) you
don’t want to add code explicitly handling that coercion, and (3) an
arithmetic surprises due to working with different numeric types are
acceptable.