[add case-default-case optimization
John Meacham <john@repetae.net>**20060207033612] hunk ./E/SSimplify.hs 384
-    doCase e b [] (Just d) sub inb | not (isLifted e) = do
+    doCase e b [] (Just d) sub inb | not (isLifted e || isUnboxed (getType e)) = do
hunk ./E/SSimplify.hs 393
+    doCase scrut v [] (Just sc@ECase { eCaseScrutinee = EVar v'} ) sub inb | v == v', not $ tvrNum v `Set.member` freeVars (caseBodies sc)  = do
+        mtick "E.Simplify.case-default-case"
+        f sc { eCaseScrutinee = scrut } sub inb
hunk ./E/Values.hs 27
-    tupleMany es = ELit $ LitCons (nameTuple DataConstructor (length es)) es (ltTuple ts) where 
+    tupleMany es = ELit $ LitCons (nameTuple DataConstructor (length es)) es (ltTuple ts) where
hunk ./E/Values.hs 149
-isLifted x = sortTermLike x
+-- | determine if term can contain _|_
+isLifted :: E -> Bool
+isLifted x = sortTermLike x && not (isUnboxed (getType x))