
It looks like you forgot to pass a compiler flag, namely -fglasgow-exts.
Cheers,
Spencer Janssen
On Tue, 13 Mar 2007 22:20:20 -0700 (PDT)
SevenThunders
I have the pleasure of porting a good sized Haskell application to linux. So far the Haskell code has compiled without incident, however some code that I hacked to implement a Read instance for Unboxed Arrays does not compile on linux even though it compiles just fine on Windows XP in Haskell 6.6.
The code reads as,
instance Read (UArray Int Double) where readsPrec p = readParen (p > 9) (\r -> [(array b as :: UArray Int Double, u) | ("array",s) <- lex r, (b,t) <- reads s, (as,u) <- reads t ])
The error in linux is: Illegal instance declaration for `Read (UArray Int Double)' (The instance type must be of form (T a b c) where T is not a synonym, and a,b,c are distinct type variables) In the instance declaration for `Read (UArray Int Double)'
Why does it want three parameters for the instance type? I am baffled by this.