@Override
  @NotNull
  public DfType asDfType(@NotNull DfType fieldValue) {
    DfType defaultType = this == OPTIONAL_VALUE ? DfTypes.OBJECT_OR_NULL : getDefaultValue();
    DfType clamped = fieldValue.meet(defaultType);
    if (clamped.equals(defaultType)) return DfTypes.NOT_NULL_OBJECT;
    if (clamped.equals(DfType.BOTTOM)) return DfType.BOTTOM;
    return DfTypes.customObject(TypeConstraints.TOP, DfaNullability.NOT_NULL, Mutability.UNKNOWN, this, clamped);
  }
@Override
  @NotNull
  public DfType asDfType(@NotNull DfType fieldValue)