[clean out a lot of cruft from Grin.FromE
John Meacham <john@repetae.net>**20061116042714] hunk ./Grin/FromE.hs 131
-    --toty e | e == tWorld__ = TyTup []
hunk ./Grin/FromE.hs 244
---shouldKeep e | e == unboxedTyUnit = False
---shouldKeep e = e /= tWorld__
hunk ./Grin/FromE.hs 311
---    toVal (TVr { tvrIdent = num, tvrType = w}) | w == tWorld__ = Tup []-- Var v0 tyUnit -- es == eHash, RawType <- nameType n  = Var (V num) (Ty $ toAtom (show n))
---    toVal (TVr { tvrIdent = num, tvrType = (ELit LitCons { litName = n, litArgs = [], litType = es })}) | es == eHash, RawType <- nameType n  = Var (V num) (Ty $ toAtom (show n))
---    toVal tvr = Var  (V (tvrIdent tvr)) (TyPtr TyNode) -- (toTy $ tvrType tvr)
hunk ./Grin/FromE.hs 312
--- constraints during compilation:
---
--- ce always produces something of type TyNode
--- cc always produces something of type (TyPtr TyNode)
--- all functions are assumed to return a TyNode
--- This is no longer true.
---
--- right after compilation, everything has type TyNode or (TyPtr TyNode) since
--- Haskell does not natively support anything other than boxed types.
--- This also isn't true.
---
hunk ./Grin/FromE.hs 373
+
+    -- holes - are these still useful?
hunk ./Grin/FromE.hs 382
+
+    -- artificial dependencies
hunk ./Grin/FromE.hs 387
+
+
+    -- references
hunk ./Grin/FromE.hs 392
-        --    var = Var v2 (TyPtr TyNode)
-        return $ Store v' -- (NodeC (convertName dc_Ref) [v']) :>>= var :-> Store (NodeC (convertName dc_IORef) [var])
+        return $ Store v'
hunk ./Grin/FromE.hs 395
-        return $ Fetch r' -- gEval r' :>>= NodeC (convertName dc_IORef) [var] :-> Fetch var :>>= NodeC (convertName dc_Ref) [var'] :-> Return var'
+        return $ Fetch r'
hunk ./Grin/FromE.hs 398
-        return $ Update r' v' -- gEval r' :>>= NodeC (convertName dc_IORef) [var] :-> Update var (NodeC (convertName dc_Ref) [v'])
-    {-
-    ce (EPrim ap@(APrim (PrimPrim "newRef__") _) [v,_] _) = do
-        let [v'] = args [v]
-            var = Var v2 (TyPtr TyNode)
-        return $ Store (NodeC (convertName dc_Ref) [v']) :>>= var :-> Store (NodeC (convertName dc_IORef) [var])
-        --return $ Alloc { expValue = NodeC (convertName dc_Ref) [v'], expCount = toUnVal (1 :: Int), expRegion = region_heap, expInfo = mempty } :>>= var :-> Store (NodeC (convertName dc_IORef) [var])
-    ce (EPrim ap@(APrim (PrimPrim "readRef__") _) [r,_] _) = do
-        let [r'] = args [r]
-            var = Var v2 (TyPtr TyNode)
-            var' = Var v3 (TyPtr TyNode)
-        return $ gEval r' :>>= NodeC (convertName dc_IORef) [var] :-> Fetch var :>>= NodeC (convertName dc_Ref) [var'] :-> Return var'
-    ce (EPrim ap@(APrim (PrimPrim "writeRef__") _) [r,v,_] _) = do
-        let var = Var v2 (TyPtr TyNode)
-            [r',v'] = args [r,v]
-        return $ gEval r' :>>= NodeC (convertName dc_IORef) [var] :-> Update var (NodeC (convertName dc_Ref) [v'])
-        -}
+        return $ Update r' v'
+
+
+    -- other primitives
hunk ./Grin/FromE.hs 434
+
+    -- case statements