code: public int compareTo(ReadableInstant other) {
          if (this == other) {
              return 0;
          }
          
          long otherMillis = other.getMillis();
          long thisMillis = getMillis();
          
          // cannot do (thisMillis - otherMillis) as can overflow
          if (thisMillis == otherMillis) {
              return 0;
          }
          if (thisMillis < otherMillis) {
              return -1;
          } else {
              return 1;
          }
      }
docs: Compares this object with the specified object for ascending
  millisecond instant order. This ordering is inconsistent with
  equals, as it ignores the Chronology.
  <p>
  All ReadableInstant instances are accepted.
  
  @param other  a readable instant to check against
  @return negative value if this is less, 0 if equal, or positive value if greater
  @throws NullPointerException if the object is null
  @throws ClassCastException if the object type is not supported