@Override
  public @NotNull String toString() {
    String range;
    if (myInvert) {
      if (myFrom == myTo) {
        range = "!= " + (Double.compare(myFrom, -0.0) == 0 && Double.compare(myTo, 0.0) == 0 ? "\u00B10.0" : myFrom);
      } else {
        String first = myFrom == Double.NEGATIVE_INFINITY ? "" : formatRange(Double.NEGATIVE_INFINITY, nextDown(myFrom));
        String second = myTo == Double.POSITIVE_INFINITY ? "" : formatRange(nextUp(myTo), Double.POSITIVE_INFINITY);
        range = StreamEx.of(first, second).without("").joining(" || ");
      }
    } else {
      range = formatRange(myFrom, myTo);
    }
    String result = "double";
    if (!range.isEmpty()) {
      result += " " + range;
    }
    if (!myNaN) {
      result += " not NaN";
    }
    else if (!range.isEmpty()) {
      result += " (or NaN)";
    }
    return result; 
  }
@Override
  public @NotNull String toString()