sure, modules have a fixed point and are recursive and can rely on values set before or after,
but the modules array in a nixos configuration starts at the top and goes down
if a module has an imports, all imports are ran then it continues
and nix is lazy, but only sort of. it will rerun things over and over again depending on the context.