@peterflynn the order is not guaranteed, for two reasons:

* other modules could have asked for 'B' before 'main' is loaded or has its dependencies registered.
* module factories are called once they are loaded (if all their dependencies are involved), and that load order is dependent on network load order, which is indeterminate. If 'A' needs 'C', but 'B' has no dependencies, it is likely 'B' will be defined before 'A'.