Im dreaming of Layer.all, which will try to create each Layer given, and when a service is requested that is not yet available, suspend the layer creation, move on to the next layer, and once the service requested earlier is available, unsuspend that layer creation and continue, and repeat.
Basically im trying to get rid of the mechanical part, of having to think about which layer requires another layer, and manually managing the order and the type: provide/provideMerge, use/useMerge and so forth.
I have a feeling we can achieve this with special support in the runtime..