Julia doesn’t run into this problem, because you don’t need to include
source in order to instantiate parametric types or specialize generic functions. You just import
the module.
In consequence, it’s rare in Julia to include
a file more than once. You typically structure your code into one or more packages, which is broken up into one or more files and sub-modules, and each file is included only a single time — include
is used more like a Makefile
to tell Julia what code makes up the package, in what order. You re-use code by importing modules (either submodules or other packages), not by include
-ing files.