code: @NotNull
      public <R extends Comparable<? super R>> Stream<T> sortBy(
              @NotNull final Function<? super T, ? extends R> f) {
          return sorted(ComparatorCompat.comparing(f));
      }
docs: Returns {@code Stream} with sorted elements (as determinated by {@code Comparable} interface).
  Each element transformed by given function {@code f} before comparing.
  
  <p>This is a stateful intermediate operation.
  
  <p>Example:
  <pre>
  f: (a) -&gt; -a
  stream: [1, 2, 3, 4]
  result: [4, 3, 2, 1]
  </pre>
  
  @param <R> the type of the result of transforming function
  @param f  the transformation function
  @return the new stream