docs: @SuppressWarnings("unchecked")
      public static int compare(Comparable lhs, Comparable rhs) {
          Class lhsClass = lhs.getClass();
          Class rhsClass = rhs.getClass();
          assert lhsClass != rhsClass;
          assert lhs instanceof Number;
          assert rhs instanceof Number;
  
          Number lhsNumber = (Number) lhs;
          Number rhsNumber = (Number) rhs;
  
          if (isDoubleRepresentable(lhsClass)) {
              if (isDoubleRepresentable(rhsClass)) {
                  return Double.compare(lhsNumber.doubleValue(), rhsNumber.doubleValue());
              } else if (isLongRepresentable(rhsClass)) {
                  return -Integer.signum(compareLongWithDouble(rhsNumber.longValue(), lhsNumber.doubleValue()));
              }
          } else if (isLongRepresentable(lhsClass)) {
              if (isDoubleRepresentable(rhsClass)) {
                  return compareLongWithDouble(lhsNumber.longValue(), rhsNumber.doubleValue());
              } else if (isLongRepresentable(rhsClass)) {
                  return compareLongs(lhsNumber.longValue(), rhsNumber.longValue());
              }
          }
  
          return lhs.compareTo(rhs);
      }