title: What is the order of AbstractModule class binding when used with Guice?
body: <p>The question is probably more understandable with an example.</p>
  
  <p>I am using <code>Guice</code> to create injector:</p>
  
  <pre><code>  val injector = Guice.createInjector(new Module)
  </code></pre>
  
  <p>with the following Module class:</p>
  
  <pre><code>class Module extends AbstractModule {
  
    override def configure(): Unit = {
      val instance = aCallToGetAnInstance()
      bind(classOf[DummyClass]).toInstance(instance)
      bind(classOf[DummyClass2]).asEagerSingleton()
    }
  
    @Provides
    @Singleton
    def provideDummyService: DummyService = {
      DummyService.standard.build()
    }
  
  }
  </code></pre>
  
  <p>Which of these 3 bound classes would be bound first?</p>
  
  <p>This question seems to make sense if one of the following calls inject one of the other class.</p>
  
  <p>Thanks for your answers.</p>