sort :: [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 6/7 rules -- 2 candidates of size 1 -- 2 candidates of size 2 -- 2 candidates of size 3 -- 7 candidates of size 4 -- 14 candidates of size 5 -- tested 15 candidates sort [] = [] sort (x:xs) = insert x (sort xs) sort :: [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 1/2 rules -- 2 candidates of size 1 -- 0 candidates of size 2 -- 0 candidates of size 3 -- 2 candidates of size 4 -- tested 4 candidates sort xs = foldr insert [] xs insert :: Int -> [Int] -> [Int] -- testing 4 combinations of argument values -- pruning with 4/4 rules -- 2 candidates of size 1 -- 0 candidates of size 2 -- 2 candidates of size 3 -- 0 candidates of size 4 -- 2 candidates of size 5 -- 2 candidates of size 6 -- 2 candidates of size 7 -- 4 candidates of size 8 -- 2 candidates of size 9 -- 8 candidates of size 10 -- 18 candidates of size 11 -- 16 candidates of size 12 -- 102 candidates of size 13 -- 32 candidates of size 14 -- 426 candidates of size 15 -- 224 candidates of size 16 -- 1450 candidates of size 17 -- tested 991 candidates insert x [] = [x] insert x (y:xs) = if x <= y then x:insert y xs else y:insert x xs qsort :: [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 8/8 rules -- 2 candidates of size 1 -- 0 candidates of size 2 -- 1 candidates of size 3 -- 0 candidates of size 4 -- 4 candidates of size 5 -- 3 candidates of size 6 -- 10 candidates of size 7 -- 21 candidates of size 8 -- 36 candidates of size 9 -- 105 candidates of size 10 -- 182 candidates of size 11 -- 471 candidates of size 12 -- 988 candidates of size 13 -- 2183 candidates of size 14 -- tested 2437 candidates qsort [] = [] qsort (x:xs) = filter (x >) (qsort xs) ++ (x:filter (x <=) (qsort xs)) qsort :: [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 8/8 rules -- 2 candidates of size 1 -- 0 candidates of size 2 -- 1 candidates of size 3 -- 0 candidates of size 4 -- 4 candidates of size 5 -- 3 candidates of size 6 -- 16 candidates of size 7 -- 35 candidates of size 8 -- 80 candidates of size 9 -- 239 candidates of size 10 -- 478 candidates of size 11 -- 1325 candidates of size 12 -- 2980 candidates of size 13 -- 7159 candidates of size 14 -- tested 6564 candidates qsort [] = [] qsort (x:xs) = qsort (filter (x >) xs) ++ (x:qsort (filter (x <=) xs)) merge :: [Int] -> [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 4/4 rules -- 3 candidates of size 1 -- 0 candidates of size 2 -- 0 candidates of size 3 -- 10 candidates of size 4 -- 0 candidates of size 5 -- 16 candidates of size 6 -- 13 candidates of size 7 -- 22 candidates of size 8 -- 114 candidates of size 9 -- 36 candidates of size 10 -- 472 candidates of size 11 -- 604 candidates of size 12 -- tested 1290 candidates cannot conjure merge :: [Int] -> [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 1/2 rules -- 2 candidates of size 1 -- 0 candidates of size 2 -- 0 candidates of size 3 -- 6 candidates of size 4 -- 0 candidates of size 5 -- 10 candidates of size 6 -- 7 candidates of size 7 -- 14 candidates of size 8 -- 41 candidates of size 9 -- 106 candidates of size 10 -- 144 candidates of size 11 -- 588 candidates of size 12 -- 958 candidates of size 13 -- tested 1876 candidates cannot conjure