merge sort (haskell)