private static void putInheritors(SemKey<?> key, SemKey<?> eachParent, Map<SemKey<?>, Collection<SemKey<?>>> inheritors) {
    getInheritorsSet(inheritors, eachParent).add(eachParent); // always add itself as parent

    for (SemKey<?> aSuper : eachParent.getSupers()) {
      getInheritorsSet(inheritors, aSuper).add(key);
      putInheritors(key, aSuper, inheritors);
    }
  }
private static void putInheritors(SemKey<?> key, SemKey<?> eachParent, Map<SemKey<?>, Collection<SemKey<?>>> inheritors)