> lips> ghc-4.04 -O -c -fglasgow-exts MonadLibrary.lhs
> 
>   panic! (the `impossible' happened):
>           mk_cpr_let: not a product
>       forall a{-ruq-} b{-rur-}.
>       (a{-ruq-} -> b{-rur-})
>       -> MonadLibrary.StateM{-r2o,x-} m{-a30Y-} s{-a30Z-} a{-ruq-}
>       -> MonadLibrary.StateM{-r2o,x-} m{-a30Y-} s{-a30Z-} b{-rur-}


This is a genuine bug in the (new) CPR analysis.  I've boiled it down
a bit and sent it off to Kevin Glynn whose analyser it is.

To avoid it, you need to switch CPR analysis off.  Alas, we didn't give
you a way to do so!   So, you can check out
the current GHC from the repository and use "-fno-cpr" (which I've just
added), or you can
remove the line "-fcpr-analyse" from ghc/driver/ghc.lprl and re-make.
In your binary distribution you can do the same thing to ghc*.

Either way, -fno-cpr will be in patch-level 1 version of 4.04, and
I hope Kevin will have a fix for his analyser by then as well.

Thanks for reporting this one.

Simon

Reply via email to