But i don't think that's the fault of the language if you define a proc with a
name as generic as "open", or maybe it should foresee how people behave, which
is something to think. Araq used to say that he can't fix people's habit, maybe
he is more on the side of providing freedom in spite of problems like the one
you described.
On the other hand, nim does sopply of certain tools to avoid these problems,
for example:
from libfoo import nil
from libbar import nil
libfoo.open() # Now you are forced to use the full name.
Maybe there could be a compiler switch to make it the default.