gps1 :: [Int] -> Maybe Int
-- testing 4 combinations of argument values
-- pruning with 11/21 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
-- looking through 0 candidates of size 3
-- looking through 1 candidates of size 4
-- looking through 0 candidates of size 5
-- looking through 0 candidates of size 6
-- looking through 1 candidates of size 7
-- looking through 0 candidates of size 8
-- looking through 1 candidates of size 9
-- looking through 2 candidates of size 10
gps1 xs = findIndex (0 >) (map (foldr (+) 0) (tail (inits xs)))
gps1 :: [Int] -> Maybe Int
-- testing 4 combinations of argument values
-- pruning with 11/21 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
-- looking through 0 candidates of size 3
-- looking through 1 candidates of size 4
-- looking through 1 candidates of size 5
-- looking through 0 candidates of size 6
-- looking through 1 candidates of size 7
-- looking through 4 candidates of size 8
gps1 xs = findIndex (0 >) (map sum (tail (inits xs)))
gps1 :: Int -> [Int] -> Int
-- testing 6 combinations of argument values
-- pruning with 8/9 rules
-- looking through 4 candidates of size 1
-- looking through 25 candidates of size 2
-- looking through 255 candidates of size 3
-- looking through 451 candidates of size 4
cannot conjure
gps2 :: Double -> Double -> Int -> Double
-- testing 5 combinations of argument values
-- pruning with 3/3 rules
-- looking through 2 candidates of size 1
-- looking through 2 candidates of size 2
-- looking through 18 candidates of size 3
-- looking through 70 candidates of size 4
-- looking through 314 candidates of size 5
-- looking through 1432 candidates of size 6
cannot conjure
gps3 :: [Char] -> Int
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
cannot conjure
gps4 :: [Char] -> [Char]
-- pruning with 13/20 rules
-- looking through 2 candidates of size 1
-- looking through 3 candidates of size 2
-- looking through 9 candidates of size 3
-- looking through 22 candidates of size 4
-- looking through 54 candidates of size 5
-- looking through 124 candidates of size 6
cannot conjure
gps5 :: Int -> [Int]
-- testing 6 combinations of argument values
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
cannot conjure
tell :: [Int] -> Int -> [Int]
-- pruning with 0/0 rules
-- looking through 2 candidates of size 1
-- looking through 1 candidates of size 2
-- looking through 2 candidates of size 3
-- looking through 10 candidates of size 4
-- looking through 6 candidates of size 5
-- looking through 61 candidates of size 6
-- looking through 26 candidates of size 7
-- looking through 538 candidates of size 8
-- looking through 134 candidates of size 9
-- looking through 5299 candidates of size 10
tell [] x = []
tell (x:xs) y = y `div` x:tell xs (y `mod` x)
gps5 :: Int -> [Int]
-- testing 6 combinations of argument values
-- pruning with 0/0 rules
-- looking through 1 candidates of size 1
-- looking through 0 candidates of size 2
-- looking through 1 candidates of size 3
gps5 x = tell [25,10,5,1] x
gps5 :: Int -> [Int]
-- testing 6 combinations of argument values
-- pruning with 12/12 rules
-- looking through 1 candidates of size 1
-- looking through 0 candidates of size 2
-- looking through 5 candidates of size 3
-- looking through 9 candidates of size 4
-- looking through 44 candidates of size 5
-- looking through 91 candidates of size 6
-- looking through 441 candidates of size 7
-- looking through 946 candidates of size 8
-- looking through 4450 candidates of size 9
-- looking through 9710 candidates of size 10
-- looking through 44767 candidates of size 11
gps5 x = tell [25,10,5,1] x
gps6 :: [Int] -> Int
-- testing 360 combinations of argument values
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
cannot conjure
gps7 :: Integer -> Integer -> Ratio Integer
-- testing 6 combinations of argument values
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
cannot conjure
gps :: Int -> [Int] -> (Int,Int)
-- testing 3 combinations of argument values
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
cannot conjure
gps :: Int -> [Char]
-- testing 7 combinations of argument values
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
cannot conjure
gps :: Int -> [Char]
-- testing 7 combinations of argument values
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
cannot conjure
gcd :: Int -> Int -> Int
-- testing 11 combinations of argument values
-- pruning with 0/0 rules
-- looking through 3 candidates of size 1
-- looking through 8 candidates of size 2
-- looking through 20 candidates of size 3
-- looking through 60 candidates of size 4
-- looking through 150 candidates of size 5
-- looking through 472 candidates of size 6
gcd x 0 = x
gcd x y = gcd y (x `mod` y)
gps12 :: [Char] -> [Char] -> [Int]
-- testing 5 combinations of argument values
-- pruning with 1/2 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
-- looking through 0 candidates of size 3
-- looking through 0 candidates of size 4
-- looking through 4 candidates of size 5
gps12 cs ds = findIndices (ds `isPrefixOf`) (tails cs)
gps13_leaders :: [Int] -> [Int]
-- testing 4 combinations of argument values
-- pruning with 5/5 rules
-- looking through 2 candidates of size 1
-- looking through 1 candidates of size 2
-- looking through 1 candidates of size 3
-- looking through 2 candidates of size 4
-- looking through 1 candidates of size 5
-- looking through 2 candidates of size 6
-- looking through 1 candidates of size 7
-- looking through 4 candidates of size 8
-- looking through 7 candidates of size 9
-- looking through 21 candidates of size 10
-- looking through 34 candidates of size 11
-- looking through 67 candidates of size 12
gps13_leaders [] = []
gps13_leaders (x:xs) = if all (x >) xs then x:gps13_leaders xs else gps13_leaders xs
gps14_luhn :: [Int] -> Int
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
cannot conjure
gps15_mastermind :: () -> ()
-- pruning with 0/1 rules
-- looking through 1 candidates of size 1
gps15_mastermind u = u
gps16_middle :: [Char] -> [Char]
-- testing 7 combinations of argument values
-- pruning with 10/11 rules
-- looking through 2 candidates of size 1
-- looking through 3 candidates of size 2
-- looking through 7 candidates of size 3
-- looking through 12 candidates of size 4
-- looking through 21 candidates of size 5
-- looking through 34 candidates of size 6
-- looking through 61 candidates of size 7
-- looking through 126 candidates of size 8
-- looking through 307 candidates of size 9
-- looking through 824 candidates of size 10
-- looking through 2282 candidates of size 11
-- looking through 6293 candidates of size 12
gps16_middle "" = ""
gps16_middle (c:cs) = if length cs <= 1 then c:cs else gps16_middle (init cs)
gps17_pds :: [Int] -> Int
-- testing 5 combinations of argument values
-- pruning with 29/40 rules
-- looking through 1 candidates of size 1
-- looking through 2 candidates of size 2
-- looking through 2 candidates of size 3
-- looking through 1 candidates of size 4
-- looking through 5 candidates of size 5
cannot conjure
gps18_price :: [Double] -> [Double] -> Double
-- testing 4 combinations of argument values
-- pruning with 28/34 rules
-- looking through 2 candidates of size 1
-- looking through 8 candidates of size 2
-- looking through 72 candidates of size 3
-- looking through 72 candidates of size 4
-- looking through 1192 candidates of size 5
-- looking through 696 candidates of size 6
cannot conjure
gps19_snowday :: Int -> Double -> Double -> Double -> Double
-- testing 7 combinations of argument values
-- pruning with 7/12 rules
-- looking through 3 candidates of size 1
-- looking through 7 candidates of size 2
-- looking through 31 candidates of size 3
-- looking through 169 candidates of size 4
-- looking through 543 candidates of size 5
-- looking through 3608 candidates of size 6
cannot conjure
gps20 :: [Char] -> Bool
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
-- looking through 0 candidates of size 2
cannot conjure
spin :: [Char] -> [Char]
-- pruning with 6/6 rules
-- reasoning produced 1 incorrect properties, please re-run with more tests for faster results
-- looking through 1 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 0 candidates of size 5
-- looking through 0 candidates of size 6
-- looking through 0 candidates of size 7
-- looking through 4 candidates of size 8
spin cs = if length cs >= 5 then reverse cs else cs
gps21_spinwords :: [Char] -> [Char]
-- pruning with 16/16 rules
-- reasoning produced 2 incorrect properties, please re-run with more tests for faster results
-- looking through 1 candidates of size 1
-- looking through 2 candidates of size 2
-- looking through 2 candidates of size 3
-- looking through 3 candidates of size 4
-- looking through 5 candidates of size 5
gps21_spinwords cs = unwords (map spin (words cs))
digits :: Int -> [Int]
-- testing 5 combinations of argument values
-- pruning with 7/7 rules
-- looking through 1 candidates of size 1
-- looking through 0 candidates of size 2
-- looking through 2 candidates of size 3
-- looking through 3 candidates of size 4
-- looking through 15 candidates of size 5
-- looking through 14 candidates of size 6
-- looking through 97 candidates of size 7
-- looking through 104 candidates of size 8
-- looking through 871 candidates of size 9
-- looking through 935 candidates of size 10
-- looking through 9018 candidates of size 11
-- looking through 9686 candidates of size 12
cannot conjure
gps22 :: Int -> [Char]
-- pruning with 0/0 rules
-- looking through 0 candidates of size 1
cannot conjure
gps23 :: [Char] -> [Char] -> [Char] -> [Char]
-- pruning with 0/0 rules
-- looking through 3 candidates of size 1
-- looking through 12 candidates of size 2
-- looking through 33 candidates of size 3
-- looking through 0 candidates of size 4
-- looking through 162 candidates of size 5
-- looking through 612 candidates of size 6
-- looking through 0 candidates of size 7
-- looking through 0 candidates of size 8
-- looking through 3168 candidates of size 9
-- looking through 0 candidates of size 10
-- looking through 0 candidates of size 11
-- looking through 5184 candidates of size 12
cannot conjure
gps24 :: [Char] -> Twitter
-- pruning with 4/8 rules
-- reasoning produced 4 incorrect properties, please re-run with more tests for faster results
-- looking through 2 candidates of size 1
-- looking through 3 candidates of size 2
-- looking through 8 candidates of size 3
-- looking through 7 candidates of size 4
-- looking through 4 candidates of size 5
-- looking through 5 candidates of size 6
-- looking through 10 candidates of size 7
-- looking through 48 candidates of size 8
-- looking through 138 candidates of size 9
-- looking through 232 candidates of size 10
-- looking through 322 candidates of size 11
-- looking through 483 candidates of size 12
gps24 "" = Empty
gps24 (c:cs) = if 140 > length cs then Tweet (length (c:cs)) else TooMany
gps25 :: [Double] -> [Double] -> Double
-- testing 6 combinations of argument values
-- pruning with 33/58 rules
-- looking through 2 candidates of size 1
-- looking through 9 candidates of size 2
-- looking through 89 candidates of size 3
-- looking through 312 candidates of size 4
-- looking through 2262 candidates of size 5
-- looking through 9400 candidates of size 6
cannot conjure