Manlio Perillo <manlio_peri...@libero.it> wrote: > Hi. > > There is a limitation, in Haskell, that I'm not sure to understand. > Here is an example: > > module Main where > > divide :: Float -> Float -> Float > divide _ 0 = error "division by 0" > divide = (/) > > main = do > print $ divide 1.0 0.0 > print $ divide 4.0 2.0 > > > > With GHC I get: > Equations for `divide' have different numbers of arguments > > With HUGS: > Equations give different arities for "divide" > > > However the two equations really have the same number of arguments. > > What's the problem? > Equations not being what you think they are. They aren't "the symbol 'divide' equals that function" but "lhs of '=', '=', and rhs of '='. The problem is mostly syntactical, in the sense that most occurrences of definitions with a different number of arguments are plain typos. The other might be implementation issues: it makes pattern match rules more complex.
-- (c) this sig last receiving data processing entity. Inspect headers for copyright history. All rights reserved. Copying, hiring, renting, performance and/or quoting of this signature prohibited. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe