I have got this seemingly trivial parallel quicksort implementation, the code is as follows: import System.Random import Control.Parallel import Data.List quicksort :: Ord a => [a] -> [a] quicksort xs = pQuicksort 16 xs -- 16 is the number of sparks used to sort -- pQuicksort, parallelQuicksort -- As long as n > 0 evaluates the lower and upper part of the list in parallel, -- when we have recursed
