@Contract("null -> null;!null -> !null;")
  @Nullable
  static <T> ImmutableDomainObjectSet<T> wrap(@Nullable Iterable<? extends T> children) {
    if (children == null) return null;
    return children instanceof ImmutableDomainObjectSet ? (ImmutableDomainObjectSet<T>)children : ImmutableDomainObjectSet.of(children);
  }
@Contract("null -> null;!null -> !null;")
  @Nullable
  static <T> ImmutableDomainObjectSet<T> wrap(@Nullable Iterable<? extends T> children)