== Signature == 0 :: Int id :: Int -> Int (+) :: Int -> Int -> Int f :: Int -> Int -> Int g :: Int -> Int -> Int h :: Int -> Int -> Int == Laws == 1. id x = x 2. x + 0 = x 3. 0 + x = x 4. x + y = y + x 5. f x x = f x y 6. g x y = g y x 7. g x x = g x y 8. h y y = h x y 9. (x + y) + z = x + (y + z)