マージソートアルゴリズムを利用したいと思います。mergeSortは、マージ関数を最初のパラメーターとして待機するメイン関数です。私の場合、どこに問題があるのでしょうか。事前にどうもありがとうございました。
mergeSort xs = merge xs
mergeDesc xs = reverse (mergeAsc xs)
mergeAsc [] = []
mergeAsc [x] = [x]
mergeAsc xs = merge (mergeAsc top) (mergeAsc bottom) where (top, bottom) = splitAt (length xs `div` 2) xs
merge [] ys = ys
merge xs [] = xs
merge (x:xs) (y:ys) | x <= y = x : merge xs (y:ys)
| otherwise = y : merge (x:xs) ys