code: @Override
      public int compareTo(ChronoLocalDateTime<?> other) {
          int cmp = toLocalDate().compareTo(other.toLocalDate());
          if (cmp == 0) {
              cmp = toLocalTime().compareTo(other.toLocalTime());
              if (cmp == 0) {
                  cmp = getChronology().compareTo(other.getChronology());
              }
          }
          return cmp;
      }
docs: Compares this date-time to another date-time, including the chronology.
  <p>
  The comparison is based first on the underlying time-line date-time, then
  on the chronology.
  It is "consistent with equals", as defined by {@link Comparable}.
  <p>
  For example, the following is the comparator order:
  <ol>
  <li>{@code 2012-12-03T12:00 (ISO)}</li>
  <li>{@code 2012-12-04T12:00 (ISO)}</li>
  <li>{@code 2555-12-04T12:00 (ThaiBuddhist)}</li>
  <li>{@code 2012-12-05T12:00 (ISO)}</li>
  </ol>
  Values #2 and #3 represent the same date-time on the time-line.
  When two values represent the same date-time, the chronology ID is compared to distinguish them.
  This step is needed to make the ordering "consistent with equals".
  <p>
  If all the date-time objects being compared are in the same chronology, then the
  additional chronology stage is not required and only the local date-time is used.
  
  @param other  the other date-time to compare to, not null
  @return the comparator value, negative if less, positive if greater