mit Funktionen split und merge wie früher.
static <E extends Comparable>
List<E> msort (List<E> xs) { ... }
interface Comparable<T>
{ int compareTo (T o); }
eingeschränkte Polymorphie, vgl.
sort :: Ord a => [a] -> [a] class Ord a where compare :: a -> a -> Ordering