Solution (source code)

= Solution

The ordering operations used to decide the partitions require an \b[`Ord a` constraint]. A <function> with <parametric polymorphism> and type `[a] -> [a]` cannot inspect arbitrary element values to decide which one is smaller; for example, <functions> themselves need not admit the comparison operations required by this <sorting algorithm>. A <Haskell Ord class> instance supplies the comparison method, with its ordering laws a separate semantic assumption.<Haskell 2010 Language Report>[Chapter 9, the Ord class and compare method]{ref}