code: public int compareTo(ReadablePartial partial) {
          // override to perform faster
          if (this == partial) {
              return 0;
          }
          if (partial instanceof LocalDate) {
              LocalDate other = (LocalDate) partial;
              if (iChronology.equals(other.iChronology)) {
                  return (iLocalMillis < other.iLocalMillis ? -1 :
                              (iLocalMillis == other.iLocalMillis ? 0 : 1));
  
              }
          }
          return super.compareTo(partial);
      }
docs: Compares this partial with another returning an integer
  indicating the order.
  <p>
  The fields are compared in order, from largest to smallest.
  The first field that is non-equal is used to determine the result.
  <p>
  The specified object must be a partial instance whose field types
  match those of this partial.
  
  @param partial  an object to check against
  @return negative if this is less, zero if equal, positive if greater
  @throws ClassCastException if the partial is the wrong class
  or if it has field types that don't match
  @throws NullPointerException if the partial is null