
Hi, When migrating some code with type families to GHC 6.10, I frequently get the same error. The deal is. If I define some type family and instance: *type family Rep (f :: * -> *) x :: * data (g :+: h) x = Inl (g x) | Inr (h x) type instance Rep (g :+: h) x = Rep g x `Either` Rep h x* and then define a function that has a scoped argument: *test :: Rep (g :+: h) x -> y test (Left x :: Rep (g :+: h) x) = undefined* I get the error: * Pattern signature must exactly match: Rep (g :+: h) x In the pattern: Left x :: Rep (g :+: h) x In the definition of `test': test (Left x :: Rep (g :+: h) x) = undefined* Is this error expected? At least the error message is not clear... Interestingly, when experimenting with a different functor, I get the impossible: * newtype Const t x = Const {unConst :: t} type instance Rep (Const t) x = t** **test2 :: Rep (Const t) x -> y test2 x = undefined* *ghc: panic! (the 'impossible' happened) (GHC version 6.10.1 for i386-unknown-linux): readFilledBox x{tv aoB} [box] Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
*
Sorry for the extensiveness. Thanks, hugo -- www.di.uminho.pt/~hpacheco
participants (1)
-
Hugo Pacheco