@@ -65,8 +65,8 @@ lookup k ((x, v) :: xs) = if (x == k) then (Just v) else (lookup k xs);
6565sort : Ord a => List a -> List a;
6666sort [] = [];
6767sort [x] = [x];
68−sort xs = let s = split xs in
69− merge (sort (fst s)) (sort (snd s)) where {
68+sort xs = let (x, y) = split xs in
69+ merge (sort x) (sort y) where {
7070 splitrec : List a -> List a -> (List a -> List a) -> (List a, List a);
7171 splitrec (_ :: _ :: xs) (y :: ys) zs = splitrec xs ys (zs . ((::) y));
7272 splitrec _ ys zs = (zs [], ys);
@@ -95,7 +95,8 @@ break p = span (not . p);
9595
9696split : (a -> Bool) -> List a -> List (List a);
9797split p [] = [];
98−split p xs with break p xs {
99− | (chunk, []) = [chunk];
100− | (chunk, (c :: rest)) = chunk :: split p rest;
101−}
98+split p xs = case break p xs of {
99+ (chunk, []) => [chunk]
100+ | (chunk, (c :: rest)) => chunk :: split p rest
101+ };
102+