double :: Int -> Int
-- testing 4 combinations of argument values
-- pruning with 14/25 rules
-- looking through 3 candidates of size 1
-- looking through 4 candidates of size 2
-- looking through 9 candidates of size 3
-- tested 8 candidates
double x = x + x
triple :: Int -> Int
-- testing 4 combinations of argument values
-- pruning with 14/25 rules
-- looking through 3 candidates of size 1
-- looking through 4 candidates of size 2
-- looking through 9 candidates of size 3
-- looking through 23 candidates of size 4
-- looking through 29 candidates of size 5
-- tested 43 candidates
triple x = x + (x + x)
add :: Int -> Int -> Int
-- testing 4 combinations of argument values
-- pruning with 14/25 rules
-- looking through 4 candidates of size 1
-- looking through 18 candidates of size 2
-- looking through 101 candidates of size 3
-- tested 24 candidates
add x y = x + y
square :: Int -> Int
-- testing 3 combinations of argument values
-- pruning with 14/25 rules
-- looking through 3 candidates of size 1
-- looking through 4 candidates of size 2
-- looking through 9 candidates of size 3
-- tested 12 candidates
square x = x * x
cube :: Int -> Int
-- testing 3 combinations of argument values
-- pruning with 14/25 rules
-- looking through 3 candidates of size 1
-- looking through 4 candidates of size 2
-- looking through 9 candidates of size 3
-- looking through 23 candidates of size 4
-- looking through 29 candidates of size 5
-- tested 55 candidates
cube x = x * (x * x)
tnpo :: Int -> Int
-- testing 3 combinations of argument values
-- pruning with 14/25 rules
-- looking through 3 candidates of size 1
-- looking through 4 candidates of size 2
-- looking through 9 candidates of size 3
-- looking through 23 candidates of size 4
-- looking through 29 candidates of size 5
-- looking through 71 candidates of size 6
-- looking through 113 candidates of size 7
-- tested 163 candidates
tnpo x = x + (x + (x + 1))