# Load and process a module in a directory (or a parent directory).
# If the module is already loaded, just return it without further processing.
# If no module is found, just return null without complaining.
# Load and process a module in a directory (or a parent directory).
# If the module is already loaded, just return it without further processing.
# If no module is found, just return null without complaining.
# Locate, load and analysis a module (and its supermodules).
# If the module is already loaded, just return it without further processing.
# Locate, load and analysis a module (and its supermodules).
# If the module is already loaded, just return it without further processing.
while dir != null do
var m = try_to_load(module_name, dir)
if m != null then return m
while dir != null do
var m = try_to_load(module_name, dir)
if m != null then return m