Demand analyser is unpacking too deeply
The demand analyser reports that fixpoint iterations are sometimes going on forever; in particular, this debug trace trips:
| + = -- pprTrace "dmdFix loop" (ppr n <+> (vcat | + -- [ text "Sigs:" <+> ppr [ (id,lookupVarEnv | (sigEnv env) id, | + -- lookupVarEnv | (sigEnv env') id) | + -- | (id,_) <- pairs], | + -- text "env:" <+> ppr env, | + -- text "binds:" <+> pprCoreBinding (Rec
This happens during bootsrapping GHC itself, and maybe somewhere in the testsuite; I forget.
The reason is that I thought a neater way to control unpacking of recursive products would work (see the
ae_rec_tc field of
AnalEnv) but I was wrong.
This doesn't bite often but it's plainly wrong and needs fixing.