[Haskell-cafe] Read Instance for UArray won't port to linux

SevenThunders mattcbro at earthlink.net
Wed Mar 14 15:32:23 EDT 2007


You guys are awesome!  I post this not 12 hours ago and I already have a
complete treatise on the subject.  Yeah to clarify things putting an
ellipsis between b and c would help.  But also clarify the meaning of
distinct type variables.  Does this mean the type variable must not be
parameterized?

I ran into this because I decided during my port that I would try to learn
some of the better build tools on linux.   So now I'm acquainted with Cmake,
which is a great tool and cabal which is also very impressive. My problem
boiled down to the fact that I didn't know how to set the correct compiler
flags within cabal.  I figured out the FFI flags and now I suppose the gch
extensions can be set with Ghc-options: -fglasgow-exts in my .cabal file. Is
there a type in the Extensions field that corresponds to this?



Spencer Janssen-2 wrote:
> 
> 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 <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.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> 

-- 
View this message in context: http://www.nabble.com/Read-Instance-for-UArray-won%27t-port-to-linux-tf3400261.html#a9481740
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.



More information about the Haskell-Cafe mailing list