@NotNull
  @Override
  default DfType meet(@NotNull DfType other) {
    if (other == DfType.TOP) return this;
    if (!(other instanceof DfIntegralType)) return DfType.BOTTOM;
    if (((DfIntegralType)other).getLongRangeType() != getLongRangeType()) return DfType.BOTTOM;
    LongRangeSet range = ((DfIntegralType)other).getRange().meet(getRange());
    LongRangeSet wideRange = ((DfIntegralType)other).getWideRange().meet(getWideRange());
    return DfTypes.range(range, wideRange, getLongRangeType());
  }
@NotNull
  @Override
  default DfType meet(@NotNull DfType other)