length :: [Int] -> Int -- testing 360 combinations of argument values -- pruning with 4/8 rules -- looking through 2 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 4 candidates of size 4 -- looking through 5 candidates of size 5 -- tested 13 candidates length [] = 0 length (x:xs) = length xs + 1 reverse :: [Int] -> [Int] -- testing 360 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 3 candidates of size 4 -- looking through 4 candidates of size 5 -- looking through 7 candidates of size 6 -- looking through 10 candidates of size 7 -- tested 27 candidates reverse [] = [] reverse (x:xs) = reverse xs ++ [x] (++) :: [Int] -> [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 0/0 rules -- looking through 3 candidates of size 1 -- looking through 7 candidates of size 2 -- looking through 9 candidates of size 3 -- looking through 44 candidates of size 4 -- looking through 116 candidates of size 5 -- looking through 80 candidates of size 6 -- tested 233 candidates [] ++ xs = xs (x:xs) ++ ys = x:(xs ++ ys) (++) :: [Int] -> [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 2/2 rules -- looking through 3 candidates of size 1 -- looking through 7 candidates of size 2 -- looking through 9 candidates of size 3 -- looking through 48 candidates of size 4 -- tested 54 candidates xs ++ ys = foldr (:) ys xs (\/) :: [Int] -> [Int] -> [Int] -- testing 360 combinations of argument values -- pruning with 0/0 rules -- looking through 3 candidates of size 1 -- looking through 7 candidates of size 2 -- looking through 9 candidates of size 3 -- looking through 44 candidates of size 4 -- looking through 116 candidates of size 5 -- looking through 80 candidates of size 6 -- tested 235 candidates [] \/ xs = xs (x:xs) \/ ys = x:ys \/ xs ordered :: [Int] -> Bool -- testing 360 combinations of argument values -- pruning with 29/39 rules -- looking through 2 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 3 candidates of size 3 -- looking through 3 candidates of size 4 -- looking through 4 candidates of size 5 -- looking through 16 candidates of size 6 -- looking through 28 candidates of size 7 -- looking through 48 candidates of size 8 -- looking through 100 candidates of size 9 -- looking through 226 candidates of size 10 -- looking through 482 candidates of size 11 -- tested 616 candidates ordered [] = True ordered (x:xs) = (null xs || x <= head xs) && ordered xs merge :: [Int] -> [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 2 candidates of size 3 -- looking through 12 candidates of size 4 -- looking through 16 candidates of size 5 -- looking through 20 candidates of size 6 -- looking through 84 candidates of size 7 -- looking through 40 candidates of size 8 -- looking through 368 candidates of size 9 -- looking through 216 candidates of size 10 -- looking through 1838 candidates of size 11 -- looking through 1016 candidates of size 12 -- tested 3615 candidates cannot conjure