Sure there is, its name is Julia. We don’t require merging functions, and jamming puns into Base functions really isn’t all that common. Infix operators are indeed tricky, as they aren’t namespace-able, but that’s one of the reasons we have so many unicode infix operators — to allow folks to write compact syntax that doesn’t have difficulties with generic programming.
With ADL, it would simply not be possible to write a cromulent function that uses a function named fit!
with our existing ecosystem unless you explicitly enumerate all the argument types that support your meaning of fit!
. Ref this comment: Function name conflict: ADL / function merging? - #92 by mbauman
Now, I agree there’s a pain point when two modules export the same (un-merged) name. That’s annoying. That’s why my concrete and simple suggestion above is a tool (editor tool, ideally) that allows you to automatically flush out the names to be explicitly used from a using: …
. And there’s a pain point in having a place where package developers can agree on common names to extend, but that discussion needs to happen somewhere for downstream users to make sense of it all.