docs: public boolean destroyDependentInstance(T instance) {
          synchronized (dependentInstances) {
              for (Iterator<ContextualInstance<?>> iterator = dependentInstances.iterator(); iterator.hasNext();) {
                  ContextualInstance<?> contextualInstance = iterator.next();
                  if (contextualInstance.getInstance() == instance) {
                      iterator.remove();
                      destroy(contextualInstance);
                      return true;
                  }
              }
          }
          return false;
      }