@Override
  public @Nullable DfType tryJoinExactly(@NotNull DfType other) {
    if (isMergeable(other)) return this;
    if (other.isMergeable(this)) return other;
    if (other instanceof DfGenericObjectType) {
      other.tryJoinExactly(this);
    }
    return null;
  }
@Override
  public @Nullable DfType tryJoinExactly(@NotNull DfType other)