Extention is not always perfect

In the Scala 5 book the authors show certain concern that defining operation like Int + Rational using extension is not perfect. Indeed, this definition is in some “third place” not easy to find.
Instead the operation in question may be elegantly defined using just one one word.
In many cases (and that is the case with Rational) Int + Rational is expected to give same result as Rational + Int. Adding modifier like symmetric to the definition of operator + inside the Rational class should prompt the compiler to switch operands of + if that helps to resolve.
Would the semantic of operation with reversed operands be different the second version of operation may be located next to the first one but with a modifier like reversed.
As a result we have all defined where expected - in the class definition. And in many cases with just one word.

people might not want to import Int + Rational, this way it comes with the class just like Rational + Int

Isn’t a Conversion[A, Rational] enough here ?


extension (x: Rational) {
  def +[A](y: A)(using Conversion[A, Rational]) = ???

Also for numeric types, isn’t the Numeric class enough ?