code: public <E extends T> List<E> sortedCopy(Iterable<E> elements) {
      @SuppressWarnings("unchecked") // does not escape, and contains only E's
      E[] array = (E[]) Iterables.toArray(elements);
      Arrays.sort(array, this);
      return Lists.newArrayList(Arrays.asList(array));
    }
docs: TODO(kevinb): rerun benchmarks including new options