code: public <U extends Comparable<? super U>> Comparator<T> thenComparing(
                  Function<? super T, ? extends U> keyExtractor,
                  java.util.Comparator<? super U> keyComparator
          ) {
              return thenComparing(F.comparing(keyExtractor, keyComparator));
          }
docs: See <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#thenComparing-java.util.function.Function-java.util.Comparator-">Java 8 doc</a>
  
  @param keyExtractor
  The function to extract the key for comparison
  @param keyComparator
  The function to compare the extracted key
  @param <U>
  the generic type of the key
  @return a function that extract key of type {@code U} from element of type {@code T}
  and run {@code keyComparator} to compare the two keys
  @since 0.2