code: @SuppressWarnings("unchecked")
      private void bindRootTypes() {
          for (Class type : tree.getRootTypes()) {
              // bind root configuration classes both with and without qualifier
              if (!type.isInterface() || bindInterfaces) {
                  // bind interface as type only when it's allowed
                  bind(type).toInstance(configuration);
              }
              bind(type).annotatedWith(Config.class).toInstance(configuration);
          }
      }
docs: Bind configuration hierarchy: all superclasses and direct interfaces for each level (except common interfaces).
  Interfaces are bound only with qualifier, except when deprecated option enabled.