Builds and wires the default instance now, unless a composition root has
called deferToRoot().
The last statement of every module on this pattern, so loading a module without the root behaves as loading it did before R2.
Makes a facade function for one method: the same call, on whichever
instance get() answers at call time.
The facade is named bound <key>, as the pre-R2 bound methods were, so the
route list and stack traces read the same.
the method's name
the facade function
Returns the installed instance, building, wiring and recording a default one first when nothing is installed.
the module's instance
Installs the instance the composition root built, runs the module's wire
step on it, and records the origin as root.
the instance the root built
Reports how the instance came to be.
root when the root installed it, default when it was built by
default, none when neither has happened
StaticdeferRecords, process-wide, that a composition root is loading this process, so
buildNowUnlessDeferred() builds nothing.
The one place a converted module's instance lives, built by the composition root or, without one, by default.
The root installs the instance it built; every facade reaches it through
get(). A service in which any module built its own instance does not start.