sort :: [Int] -> [Int]
-- testing 360 combinations of argument values
-- pruning with 6/7 rules
-- looking through 2 candidates of size 1
-- looking through 3 candidates of size 2
-- looking through 4 candidates of size 3
-- looking through 11 candidates of size 4
-- looking through 23 candidates of size 5
-- tested 22 candidates
sort []  =  []
sort (x:xs)  =  insert x (sort xs)

sort :: [Int] -> [Int]
-- testing 360 combinations of argument values
-- pruning with 1/2 rules
-- looking through 2 candidates of size 1
-- looking through 1 candidates of size 2
-- looking through 0 candidates of size 3
-- looking through 4 candidates of size 4
-- tested 5 candidates
sort xs  =  foldr insert [] xs

insert :: Int -> [Int] -> [Int]
-- testing 4 combinations of argument values
-- pruning with 4/4 rules
-- looking through 2 candidates of size 1
-- looking through 1 candidates of size 2
-- looking through 2 candidates of size 3
-- looking through 6 candidates of size 4
-- looking through 2 candidates of size 5
-- looking through 19 candidates of size 6
-- looking through 6 candidates of size 7
-- looking through 44 candidates of size 8
-- looking through 62 candidates of size 9
-- looking through 91 candidates of size 10
-- looking through 334 candidates of size 11
-- looking through 220 candidates of size 12
-- looking through 1358 candidates of size 13
-- looking through 1019 candidates of size 14
-- looking through 4638 candidates of size 15
-- looking through 6332 candidates of size 16
-- looking through 14550 candidates of size 17
-- tested 14943 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
-- looking through 2 candidates of size 1
-- looking through 1 candidates of size 2
-- looking through 1 candidates of size 3
-- looking through 3 candidates of size 4
-- looking through 6 candidates of size 5
-- looking through 9 candidates of size 6
-- looking through 22 candidates of size 7
-- looking through 37 candidates of size 8
-- looking through 84 candidates of size 9
-- looking through 169 candidates of size 10
-- looking through 352 candidates of size 11
-- looking through 767 candidates of size 12
-- looking through 1600 candidates of size 13
-- looking through 3499 candidates of size 14
-- tested 3667 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
-- looking through 2 candidates of size 1
-- looking through 1 candidates of size 2
-- looking through 1 candidates of size 3
-- looking through 3 candidates of size 4
-- looking through 6 candidates of size 5
-- looking through 9 candidates of size 6
-- looking through 28 candidates of size 7
-- looking through 51 candidates of size 8
-- looking through 128 candidates of size 9
-- looking through 303 candidates of size 10
-- looking through 648 candidates of size 11
-- looking through 1621 candidates of size 12
-- looking through 3592 candidates of size 13
-- looking through 8475 candidates of size 14
-- tested 7794 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
-- looking through 3 candidates of size 1
-- looking through 8 candidates of size 2
-- looking through 11 candidates of size 3
-- looking through 23 candidates of size 4
-- looking through 86 candidates of size 5
-- looking through 72 candidates of size 6
-- looking through 297 candidates of size 7
-- looking through 322 candidates of size 8
-- looking through 939 candidates of size 9
-- looking through 1966 candidates of size 10
-- looking through 2972 candidates of size 11
-- looking through 11011 candidates of size 12
-- tested 17710 candidates
cannot conjure

merge :: [Int] -> [Int] -> [Int]
-- testing 360 combinations of argument values
-- pruning with 1/2 rules
-- looking through 2 candidates of size 1
-- looking through 2 candidates of size 2
-- looking through 3 candidates of size 3
-- looking through 10 candidates of size 4
-- looking through 21 candidates of size 5
-- looking through 26 candidates of size 6
-- looking through 61 candidates of size 7
-- looking through 92 candidates of size 8
-- looking through 203 candidates of size 9
-- looking through 430 candidates of size 10
-- looking through 1086 candidates of size 11
-- looking through 2068 candidates of size 12
-- tested 4004 candidates
cannot conjure

