public @NotNull LongRangeSet eval(@NotNull LongRangeSet left, @NotNull LongRangeSet right, LongRangeType lrType) {
    return switch (this) {
      case PLUS -> left.plus(right, lrType);
      case MINUS -> left.minus(right, lrType);
      case AND -> left.bitwiseAnd(right);
      case OR -> left.bitwiseOr(right, lrType);
      case XOR -> left.bitwiseXor(right, lrType);
      case MUL -> left.mul(right, lrType);
      case MOD -> left.mod(right);
      case DIV -> left.div(right, lrType);
      case SHL -> left.shiftLeft(right, lrType);
      case SHR -> left.shiftRight(right, lrType);
      case USHR -> left.unsignedShiftRight(right, lrType);
    };
  }
public @NotNull LongRangeSet eval(@NotNull LongRangeSet left, @NotNull LongRangeSet right, LongRangeType lrType)