@jackmiras You can simply have inter-module dependencies (a binding in module 1 can depend on a type that is not bound in that same module). The retrieval will fail only at retrieval time if the type is not bound.
Copy code
val module = Kodein.Module {
bind<ThirdObject>() with singleton { ThirdObject(instance()) } // The SomeObject binding is defined in another module.
}