[Haskell-cafe] Read Instance for UArray won't port to linux
sjanssen at cse.unl.edu
Wed Mar 14 02:27:19 EDT 2007
It looks like you forgot to pass a compiler flag, namely -fglasgow-exts.
On Tue, 13 Mar 2007 22:20:20 -0700 (PDT)
SevenThunders <mattcbro at earthlink.net> wrote:
> 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.
More information about the Haskell-Cafe