I wouldn't say that generic functions remember in which module they were first 
defined. Rather, a `using` declaration is kind of a weak import that says to 
only look for a name in the given module if it is not found in the current 
module. So when defining a method in the current module, no previous definition 
of the function will be found there and a new one will be created, shadowing 
the definition imported through using. On the other hand, import creates a 
bindings for the imported names in the current module, making it look just like 
they were defined there in the first place. This is my understanding at least, 
please correct me if I'm wrong. 

Reply via email to