sum :: [Int] -> Int
-- testing 4 combinations of argument values
-- pruning with 14/25 rules
-- 2 candidates of size 1
-- 3 candidates of size 2
-- 2 candidates of size 3
-- 6 candidates of size 4
-- 11 candidates of size 5
-- tested 14 candidates
sum []  =  0
sum (x:xs)  =  x + sum xs

sum :: [Int] -> Int
-- pruning with 14/25 rules
-- 2 candidates of size 1
-- 5 candidates of size 2
-- 3 candidates of size 3
-- 10 candidates of size 4
-- 18 candidates of size 5
-- tested 21 candidates
sum []  =  0
sum (x:xs)  =  x + sum xs

