Construction order is resolved by module dependencies (import statements) In the main thread ---------------------- Currently, shared and thread-local construction are separated. Instead we could "construct a module", i.e run both shared and thread-local construction for that module, then continue to construct the next module.