With your version, the following will not compile:
class Base implements Comparable<Base> { ... }
class Derived extends Base { ... }
List<Derived> list = ...;
mySort(list);
Derived
does not extend Comparable<Derived>
. However, it does extend Comparable<Base>
(and thus, Comparable<? super Derived>
).