Good point. My fault, I think, and now fixed in the head of
the CVS tree. Workaround: put the fixity decls at top level.
Sorry about this
Simon
| -----Original Message-----
| From: Michael Hudson [mailto:[EMAIL PROTECTED]]
| Sent: 08 March 2000 13:31
| To: [EMAIL PROTECTED]
| Subject: fixity declarations in where clauses?
|
|
| To bring the intellectual tone down a notch or two from that
| "overlapping instances" thread ...
|
| I've just spent spent a few hours tearing my hair out trying to work
| out why my code was giving different answers under hugs and under ghc.
|
| Eventually I found that ghc was ignoring fixity declarations in a
| where clause (actually I'm not sure if it was ignoring them - but it
| certainly isn't doing what I'd expect).
|
| Here's a test case:
|
| Test.hs contains:
|
| main = print val
|
| val = 3 +! 4 *! 2
| where (+!) = (+)
| (*!) = (*)
| infixl 6 +!
| infixl 7 *!
|
| and then:
|
| [mwh21@atrus 15.8]$ runhugs Test.hs
| 11
| [mwh21@atrus 15.8]$ ghc Test.hs
| [mwh21@atrus 15.8]$ ./a.out
| 14
|
| Who's wrong here? Me or ghc?
|
| A (very) cursory scan of the Haskell report comes out in my favour,
| but I'm certainly no expert. This is the first time I've used haskell
| for anything "real", so be gentle please!
|
| Cheers,
| Michael
|
| PS: This is with a freshly downloaded ghc-4.06-1.i386.rpm
|
|