code: public <E extends T> E min(@Nullable E a, @Nullable E b) {
      return (compare(a, b) <= 0) ? a : b;
    }
docs: Returns the lesser of the two values according to this ordering. If the values compare as 0,
  the first is returned.
  
  <p><b>Implementation note:</b> this method is invoked by the default implementations of the
  other {@code min} overloads, so overriding it will affect their behavior.
  
  <p><b>Java 8 users:</b> Use {@code Collections.min(Arrays.asList(a, b), thisComparator)}
  instead (but note that it does not guarantee which tied minimum element is returned).
  
  @param a value to compare, returned if less than or equal to b.
  @param b value to compare.
  @throws ClassCastException if the parameters are not <i>mutually comparable</i> under this
  ordering.