
| PS: On a side note, I found this error message to be kind of funny. It seems | to indicate no real error but some sort of error-message-driven poll! That's exactly what it is, and you are the pollee. Nevertheless it's probably needlessly obscure. The point is this: you are doing case x of { ... } where the "..." has GADT patterns. But GHC doesn't know what type 'x' is. Usually type inference will suffice, but not for GADTs. Solution: use a type signature to tell GHC just what type x has. Example: f x = case x of ... give f a type signature f :: forall a. T a -> Int There ought to be a "contributed documentation" wiki page about GADTs here http://haskell.org/haskellwiki/GHC but there isn't yet. Would someone like to start one? sorry brevity, rushing to get to icfp Simon | -----Original Message----- | From: glasgow-haskell-users-bounces@haskell.org [mailto:glasgow-haskell-users-bounces@haskell.org] On | Behalf Of Daniel GorĂn | Sent: 26 September 2007 17:34 | To: glasgow-haskell-users@haskell.org | Subject: module containing GADTs no longer compiles in ghc 6.8.0 | | Hi | | I just tried to compile a project of mine that builds fine using ghc 6.6.1 and | got many errors like this: | | src/HyLo/Formula/NNF.hs:247:48: | GADT pattern match in non-rigid context for `Opaque' | Tell GHC HQ if you'd like this to unify the context | In the pattern: Opaque f' | In the expression: \ (Opaque f') -> Opaque (Box r f') | In the definition of `box': | box = \ (Opaque f') -> Opaque (Box r f') | | I don't know what a "non-rigid context" is, nor if "I like this to unify the | context" or not, but I would certainly be happy if I could get this module to | compile again! :) | | For the record, I was using ghc-6.8.0.20070917. Please let me know if you need | further information.... | | Thanks | Daniel | | _______________________________________________ | Glasgow-haskell-users mailing list | Glasgow-haskell-users@haskell.org | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users