To customize the error message that’s emitted when an implicit search finds
multiple ambiguous values, annotate at least one of the implicit values
@implicitAmbiguous . Assuming the implicit value is a method with type
parameters X1,..., XN , the error message will be the result of replacing all
occurrences of ${Xi} in the string msg with the string representation of the
corresponding type argument Ti .
If more than one @implicitAmbiguous annotation is collected, the compiler is
free to pick any of them to display.
Nice errors can direct users to fix imports or even tell them why code
intentionally doesn’t compile.