code: @CanIgnoreReturnValue // TODO(kak): Consider removing this
    public <E extends T> E max(@Nullable E a, @Nullable E b, @Nullable E c, E... rest) {
      E maxSoFar = max(max(a, b), c);
  
      for (E r : rest) {
        maxSoFar = max(maxSoFar, r);
      }
  
      return maxSoFar;
    }
docs: Returns the greatest of the specified values according to this ordering. If
  there are multiple greatest values, the first of those is returned.
  
  <p><b>Java 8 users:</b> Use {@code Stream.of(a, b, c...).max(thisComparator).get()} instead
  (but note that it does not guarantee which tied maximum element is returned).
  
  @param a value to compare, returned if greater than or equal to the rest.
  @param b value to compare
  @param c value to compare
  @param rest values to compare
  @throws ClassCastException if the parameters are not <i>mutually
  comparable</i> under this ordering.