[add unboxing of demotions
John Meacham <john@repetae.net>**20090828111751
 Ignore-this: fecc8c1427928f7de253bebe33eef69f
] hunk ./src/Grin/SSimplify.hs 283
-data UnboxingResult = UnErr [Ty] | UnStore !Bool !Atom [Unbox] | UnReturn [Unbox] | UnTail (Set.Set Atom) UnboxingResult
+data UnboxingResult = UnErr [Ty] | UnStore !Bool !Atom [Unbox] | UnDemote Unbox | UnReturn [Unbox] | UnTail (Set.Set Atom) UnboxingResult
hunk ./src/Grin/SSimplify.hs 295
+    getType (UnDemote _) = [tyINode]
hunk ./src/Grin/SSimplify.hs 305
+    f (UnDemote u) vs = let ([u'],[]) = g [u] vs in BaseOp Demote [u']
hunk ./src/Grin/SSimplify.hs 321
+    f (UnDemote _) = Just [tyDNode]
hunk ./src/Grin/SSimplify.hs 332
+    f (UnDemote _) =runIdentity . editTail nty y
hunk ./src/Grin/SSimplify.hs 337
+    y (BaseOp Demote [x]) = return $ Return [x]
+    y (Return [Const v]) = return $ Return [v]
hunk ./src/Grin/SSimplify.hs 350
+    f (UnDemote u1) (UnDemote u2) = UnDemote (g u1 u2)
+    f (UnDemote u1) (UnReturn [UnConst (Const v)]) = UnDemote (UnUnknown tyDNode)
+    f (UnReturn [UnConst (Const v)]) (UnDemote u1) = UnDemote (UnUnknown tyDNode)
hunk ./src/Grin/SSimplify.hs 364
+    f (BaseOp Demote [v]) = UnDemote (g v)