GHC 6.6 was a bit more generous than GHC 6.8, but erroneously so.   
Specifically, GHC 6.8 and all subsequent versions require that when you pattern 
match on a value of GADT type,

*         the type of the scrutinee

*         the type of the result of the case

*         the types of any free variables used inside the case alternatives
are all completely known ("rigid" in GHC's terminology) at the case expression.

The easiest way to make a variable have a rigid type is to give it a type 
signature.

I don't expect to revert to GHC 6.6's behaviour because I don't know how to do 
(robust, complete) type inference for that.

I'll add these remarks to the user manual.

Simon

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jason Dagit
Sent: 21 July 2008 20:44
To: glasgow-haskell-users@haskell.org
Subject: GHC 6.6 GADT type unification vs GHC 6.8

Hello,

I was wresting with the problem of converting our type witness code in darcs to 
work with ghc 6.8 and it occurred to me that someone has probably document the 
change somewhere.  In particular, I'm seeing this error message a lot, but 6.6 
doesn't give this message:
    GADT pattern match in non-rigid context for `NilRL'
      Tell GHC HQ if you'd like this to unify the context

The main difference I have observed is that 6.6 infers types in case statements 
fully, but 6.8 seems to skip them and expects type signatures.  Sometimes I'm 
at a loss to figure out where to add the type signature to satisfy 6.8 and the 
process becomes tedious and time consuming.  I'm using 6.8.2 and I did see this 
thread:
http://www.haskell.org/pipermail/glasgow-haskell-users/2007-December/013952.html

What version of GHC do I need to see the improved diagnostics mentioned in that 
thread?

Will the GADT unification in 6.10 be compatible with 6.6?  If so, maybe I 
shouldn't convert the code to work for 6.8.  Also, can someone point me to a 
discussion of the difference or a paper about it?

Thanks,
Jason
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to