Fixed. Simon
| -----Original Message----- | From: Simon Marlow [mailto:[EMAIL PROTECTED]] | Sent: 17 May 2002 10:34 | To: Thomas Hallgren; [EMAIL PROTECTED] | Subject: RE: Negative literals and the meaning of case -2 of | -2 -> True | | | | > To find out how Haskell implementations treat negated | > literals, I tested | > the following program: | > | > ------------------------------------------------ | > main = print (minusTwo,trueOrFalse) | > | > minusTwo = -2::N | > | > trueOrFalse = | > case minusTwo of | > -2 -> True | > _ -> False | > | > data N = Negate N | FromInteger Integer deriving (Eq,Show) | > | > instance Num N where | > negate = Negate | > fromInteger = FromInteger | > ------------------------------------------------- | > | > The result is: | > | > * ghc 5.02.2: main outputs: (FromInteger (-2),True) | | GHC has two bugs in this area, one of which has been fixed | recently. The current output is (Negate (FromInteger | 2),False) (i.e. the same as hbc). We were being a little too | eager to replace 'negate (fromInteger N)' by 'fromInteger | (-N)'. There is also a bug in the pattern handling, however. | | Thanks for a nice test case... | | Cheers, | Simon | | _______________________________________________ | Haskell mailing list | [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell | _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell