@NotNull
  public Iterable<ReferenceID> allSubclasses(ReferenceID from) {
    return recurse(from, this::directSubclasses, false);
  }
@NotNull
  public Iterable<ReferenceID> allSubclasses(ReferenceID from)