---------------------------------------------------------------------------
------------------- Mergesort ---------------------------------------------
---------------------------------------------------------------------------

{-@ sort2 :: (Ord a) => [a] -> OList a @-}
sort2 :: (Ord a) => [a] -> [a]
sort2 = mergesort
sort2 :: (Ord a) => [a] -> [a]
sort2 = mergesort
sort2 = mergesort