Invariant: The list of alternatives is ALWAYS EXHAUSTIVE,
meaning that it covers all cases that can occur
- An "exhausive" case does not necessarily mention all constructors:
+ An "exhaustive" case does not necessarily mention all constructors:
data Foo = Red | Green | Blue
...case x of
seqAlts :: [CoreAlt] -> ()
seqAlts [] = ()
-seqAlts ((_,bs,e):alts) = seqBndrs bs `seq` seqExpr e `seq` seqAlts alts
+seqAlts ((c,bs,e):alts) = c `seq` seqBndrs bs `seq` seqExpr e `seq` seqAlts alts
seqRules :: [CoreRule] -> ()
seqRules [] = ()