docs: protected void checkBoundaryCompatibility() {
          if (from instanceof String && to instanceof String) {
              // this test depends deeply on the String.next implementation
              // 009.next is 00:, not 010
              final String start = from.toString();
              final String end = to.toString();
              if (start.length() != end.length()) {
                  throw new IllegalArgumentException("Incompatible Strings for Range: different length");
              }
              final int length = start.length();
              int i;
              for (i = 0; i < length; i++) {
                  if (start.charAt(i) != end.charAt(i)) {
                      break;
                  }
              }
              // strings must be equal except for the last character
              if (i < length - 1) {
                  throw new IllegalArgumentException("Incompatible Strings for Range: String#next() will not reach the expected value");
              }
          }
      }