[use newIds to ensure we don't reuse existing names in scope
John Meacham <john@repetae.net>**20061212053241] hunk ./DataConstructors.hs 490
-    var = tvr { tvrIdent = 2, tvrType = typ }
+    var = tvr { tvrIdent = vid, tvrType = typ }
+    (vid:_) = newIds (freeVars typ)
hunk ./E/FromHs.hs 238
-                        tv = tvr { tvrIdent = head [ n | n <- [2,4..], n `notElem` freeVars vp], tvrType = getType vp }
+                        tv = tvr { tvrIdent = head [ n | n <- newIds (freeVars vp)], tvrType = getType vp }
hunk ./E/LetFloat.hs 81
-        let (var:_) = [ i | i <- [2, 4 .. ], i `notMember` fvs]
+        let (var:_) = [ i | i <- newIds fvs]
hunk ./E/WorkerWrapper.hs 120
-    vars@(~[sv]) = [  tVr i t | t <- slotTypes dataTable (getName cname) bodyTyp | i <- [2,4..], i `notMember` dontUseThese ]
+    vars@(~[sv]) = [  tVr i t | t <- slotTypes dataTable (getName cname) bodyTyp | i <- newIds dontUseThese ]