Elaborating on ambiguity.
import libfoo
import libbar
open() # open is coming from foo.
Later down the road libbar decided to add proc open(). Second developer (Not
the original author of above code) needed to use the latest version of libbar ,
in some other part of the code. Compiler might report the ambuigity and be
done. But the burden of namespace resolution falls on second developer's head
to figure out open() was added to by libbar's new version and the open() was
meant to be from flibfoo.
>From libbar's point of view, addition of new optional elements in api becomes
>a breaking change requiring major version change.