Sequentieller Algorithmus:
merge :: Ord a => [a] -> [a] -> [a]
split :: [a] -> ([a],[a])
msort :: Ord a => [a] -> [a]
msort [] = [] ; msort [x] = [x] ; msort xs =
let ( here, there ) = split xs
mshere = msort here
msthere = msort there
in merge mshere msthere
Strategie-Annotation in msort,
dabei Auswertung der Teilresultate erzwingen.
vgl. http://article.gmane.org/gmane.comp.lang.haskell.parallel/181