@salomonbrys: Also, in the transitive example, I don’t understand why I need to explicitly bind <Dice> : Kodein should be able to create an instance of it without my help. This is a big plus of Guice where you don’t have to bind every single type you’re using explicitly