From: Bertram Felgenhauer Date: Wed, 21 Nov 2007 10:14:58 +0000 (+0000) Subject: Data.List.sort: force elements from start to end. X-Git-Tag: 2008-05-28~86 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d7d871d674ee73c100ce5ab89ada80be2563ef79;p=ghc-base.git Data.List.sort: force elements from start to end. this prevents a stack overflow on sort (take 10^6 [1..]) --- diff --git a/Data/List.hs b/Data/List.hs index 1c52b50..19dbc7d 100644 --- a/Data/List.hs +++ b/Data/List.hs @@ -807,8 +807,8 @@ merge_pairs cmp [xs] = [xs] merge_pairs cmp (xs:ys:xss) = merge cmp xs ys : merge_pairs cmp xss merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a] -merge cmp xs [] = xs merge cmp [] ys = ys +merge cmp xs [] = xs merge cmp (x:xs) (y:ys) = case x `cmp` y of GT -> y : merge cmp (x:xs) ys