[project @ 2001-07-26 10:06:22 by simonmar]
authorsimonmar <unknown>
Thu, 26 Jul 2001 10:06:22 +0000 (10:06 +0000)
committersimonmar <unknown>
Thu, 26 Jul 2001 10:06:22 +0000 (10:06 +0000)
Fix from Simon P.J. (committing over the phone :-)

Add missing case in lub:

lub Eval (Seq k Defer ds) = Lazy

previously lub of Eval and Defer would have defaulted to Eval, which
was overoptimistic.

ghc/compiler/stranal/DmdAnal.lhs

index 0aeea0d..f7cef99 100644 (file)
@@ -627,10 +627,11 @@ lub Abs Abs            = Abs
 lub Abs (Seq k _ ds) = Seq k Defer ds  -- Very important ('radicals' example)
 lub Abs d           = Lazy
 
-lub Eval Abs           = Lazy
-lub Eval Lazy          = Lazy
-lub Eval (Seq k Now ds) = Seq Keep Now ds
-lub Eval d             = Eval
+lub Eval Abs             = Lazy
+lub Eval Lazy            = Lazy
+lub Eval (Seq k Now   ds) = Seq Keep Now ds
+lub Eval (Seq k Defer ds) = Lazy
+lub Eval d               = Eval
 
 lub (Call d1) (Call d2) = Call (lub d1 d2)