== API == -- functions -- (:) :: Int -> [Int] -> [Int] (++) :: [Int] -> [Int] -> [Int] head :: [Int] -> Int tail :: [Int] -> [Int] [] :: [Int] -- variables -- x, y, z :: Int xs, ys, zs :: [Int] == Testing == Depth 1: 9 terms, 3 tests, 18 evaluations, 9 classes, 0 raw equations. Depth 2: 45 terms, 500 tests, 7585 evaluations, 36 classes, 9 raw equations. Depth 3: 1017 terms, 500 tests, 182341 evaluations, 795 classes, 222 raw equations. Depth 4: 4575 terms, 500 tests, 1724824 evaluations, 2316 classes, 2259 raw equations. 2259 raw equations; 2316 terms in universe. == Equations about (++) == 1: xs++[] == xs 2: []++xs == xs 3: (xs++ys)++zs == xs++(ys++zs) == Equations about head == 4: head [] == undefined == Equations about tail == 5: tail [] == undefined == Equations about several functions == 6: (x:xs)++ys == x:(xs++ys) 7: head (x:xs) == x 8: tail (x:xs) == xs 9: head (xs++xs) == head xs 10: tail xs++xs == tail (xs++xs) 11: head (xs++(x:ys)) == head (xs++(x:zs)) 12: head (xs++(xs++ys)) == head (xs++ys) 13: head (xs++(ys++xs)) == head (xs++ys) 14: head (xs++(ys++ys)) == head (xs++ys) 15: tail (xs++ys)++xs == tail (xs++(ys++xs)) 16: tail (xs++ys)++ys == tail (xs++(ys++ys)) 17: head (xs++tail xs) == head xs 18: tail (xs++tail xs) == tail xs++tail xs 19: head ((x:xs)++tail ys) == x 20: tail ((x:xs)++tail ys) == xs++tail ys 21: head ((xs++ys)++tail xs) == head (xs++ys) 22: head ((xs++ys)++tail ys) == head (xs++ys) 23: head (tail xs++(xs++ys)) == head (tail (xs++xs)) 24: head xs:(tail xs++ys) == head xs:tail (xs++ys) 25: tail xs++(tail xs++ys) == tail xs++tail (xs++ys) 26: tail (xs++ys)++tail xs == tail ((xs++ys)++tail xs) 27: tail (xs++ys)++tail ys == tail ((xs++ys)++tail ys) 28: head xs:tail (xs++xs) == xs++(head xs:tail xs)