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