count :: A -> [A] -> Int -- testing 13 combinations of argument values -- pruning with 1/2 rules -- looking through 0 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 1 candidates of size 5 count x xs = length (filter (x ==) xs) count :: A -> [A] -> Int -- testing 13 combinations of argument values -- pruning with 8/13 rules -- looking through 2 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 0 candidates of size 4 -- looking through 3 candidates of size 5 -- looking through 2 candidates of size 6 -- looking through 13 candidates of size 7 -- looking through 16 candidates of size 8 -- looking through 57 candidates of size 9 -- looking through 90 candidates of size 10 -- looking through 258 candidates of size 11 -- looking through 448 candidates of size 12 -- looking through 1145 candidates of size 13 -- looking through 2144 candidates of size 14 -- looking through 5216 candidates of size 15 -- looking through 10320 candidates of size 16 count x xs = if null xs then 0 else (if head xs == x then 1 else 0) + count x (tail xs)