Function name conflict: ADL / function merging?

There are some mathematical contexts where you can see degree doing the same thing.
I could parody your explanation:

*(a::Int, b::Int) and *(a::Matrix, b::Matrix) which do not do the same thing at all (commutative and noncommutative multiplication). You should use the qualified names Base.* and LinearAlgebra.*.
Seeing A*B in code would be much more confusing rather than LinearAlgebra.*

I hope you get my meaning… Anyway the argument “does not do the same thing” is not pertinent. Let’s take another example: the first package is UnivariatePolynomials, the second one is MultivariatePolynomials.
Then degree clearly does the same thing. Next you will come up with an argument that one should not use the two packages together.

I would prefer answers which tackle the problem rather than sidestep it.

8 Likes