== Signature == (++) :: [Int] -> [Int] -> [Int] length :: [Int] -> Int zip :: [Int] -> [Int] -> [(Int, Int)] prj_eqLen :: TestCaseWrapped "eqLen" ([Int] -> [Int] -> Bool) -> [Int] prj_eqLen' :: TestCaseWrapped "eqLen" ([Int] -> [Int] -> Bool) -> [Int] eqLen :: [Int] -> [Int] -> Bool True :: Bool == Laws == 1. eqLen xs xs = True 2. eqLen xs ys => length xs = length ys 3. eqLen xs ys = eqLen ys xs 4. eqLen ys zs => eqLen xs ys = eqLen xs zs 5. length (xs ++ ys) = length (ys ++ xs) 6. (xs ++ ys) ++ zs = xs ++ (ys ++ zs) 7. zip xs (xs ++ ys) = zip xs xs 8. zip (xs ++ ys) xs = zip xs xs 9. eqLen ys zs => length (xs ++ ys) = length (xs ++ zs) 10. eqLen xs (ys ++ zs) = eqLen xs (zs ++ ys) 11. eqLen xs (xs ++ ys) = eqLen zs (zs ++ ys) 12. eqLen zs xs2 => eqLen xs (ys ++ zs) = eqLen xs (ys ++ xs2) 13. eqLen xs (xs ++ (ys ++ ys)) = eqLen xs (xs ++ ys) 14. eqLen (xs ++ zs) (ys ++ zs) = eqLen xs ys 15. eqLen (xs ++ xs) (ys ++ ys) = eqLen xs ys 16. zip xs (ys ++ (xs ++ zs)) = zip xs (ys ++ xs) 17. zip (xs ++ (ys ++ zs)) ys = zip (xs ++ ys) ys 18. eqLen xs ys => zip (xs ++ zs) ys = zip xs ys 19. eqLen xs ys => zip xs (ys ++ zs) = zip xs ys 20. eqLen xs (ys ++ (zs ++ xs2)) = eqLen xs (ys ++ (xs2 ++ zs)) 21. eqLen zs xs2 => length (xs ++ (ys ++ zs)) = length (xs ++ (zs ++ ys))