Habe mir auch ein paar Zeilen angesehen und glaube, es müsste entweder so aussehen:

Code:
foo :: (Int, Int) -> Int
foo (a, b)
    | a == 0 = 1
    | otherwise = a * b
oder so:
Code:
foo :: Int -> Int -> Int
foo a b
    | a == 0 = 1
    | otherwise = a * b