This is just to confirm my understanding.
Based on Julia’s behavior, the following statement seems to be true: Any import
or using
statement loads a module, and loading adds all methods defined in that module to their respective method tables.
So, if I do import SomeModule
or using SomeModule: some_function
, if SomeModule
defines any methods for some other function (let’s say LinearAlgebra.mul!
), the updated method for LinearAlgebra.mul!
will be loaded into my program as well. There is no way to use/import anything from SomeModule
without getting the updated LinearAlgebra.mul!
method, short of manually manipulating method tables, right? (Of course, I won’t notice any of this unless I import LinearAlgebra.mul!
in my own program).
Just to be clear: I’m totally fine with this behavior, and I kinda think it’s the only behavior that really makes sense, but it took me a while to wrap my head around when originally learning Julia. Still, I haven’t seen it explicitly stated in the documentation.