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