the resolution of that issue seems odd - If I have two completely unrelated libraries. Say DataFrames and one of my own. I export value( ::MyType) I'm happily using it. Some time later I Pkg.update(), unbeknownst to me the DataFrames dev team have added an export of value( ::DataFrame, ...) suddenly all my code which imports both breaks and I have to go through the entire stack qualifying the calls, as do other users of my module? That doesn't seem right, there is no ambiguity I can see and the multiple dispatch should continue to work correctly.
Fundamentally I want the two value() functions to collapse and not have to qualify them. If there is a dispatch ambiguity then game over, but if there isn't I don't see any advantage (and lots of negatives) to preventing the import. I'd argue the same is true with overloading methods in Base. Why would we locally mask get if there is no dispatch ambiguity even if I don't importall Base. Qualifying names seems like an anti pattern in a multiple dispatch world. Except for those edge cases where there is an ambiguity of dispatch. Am I missing something? Perhaps I don't understand multiple dispatch well enough?
