[fix bug where types of slots for unpacked polymorphic components wern't being properly specialized
John Meacham <john@repetae.net>**20090327101411
 Ignore-this: 4415dda8287d5bf51a6b3e76b6f18b8d
] hunk ./DataConstructors.hs 665
-    => DataTable -- ^ table of data constructors
-    -> Name   -- ^ name of said constructor
-    -> E      -- ^ type of pattern
-    -> [TVr]  -- ^ variables to be bound
-    -> E      -- ^ body of alt
+    => DataTable  -- ^ table of data constructors
+    -> Name       -- ^ name of said constructor
+    -> E          -- ^ type of pattern
+    -> [TVr]      -- ^ variables to be bound
+    -> E          -- ^ body of alt
hunk ./DataConstructors.hs 674
+    sub = substMap $ fromDistinctAscList [ (i,sl) | sl <- xs | i <- anonymousIds ]
hunk ./DataConstructors.hs 679
-                f (v:vs) (SlotNormal e:ss) rs ls = f vs ss (v:rs) ls
+                f (v:vs) (SlotNormal _:ss) rs ls = f vs ss (v:rs) ls
hunk ./DataConstructors.hs 684
-                    as <- mapM g es
-                    f vs ss (reverse as ++ rs) ((v,ELit litCons { litName = n, litArgs = map EVar as, litType = e }):ls)
+                    as <- mapM g (map sub es)
+                    f vs ss (reverse as ++ rs) ((v,ELit litCons { litName = n, litArgs = map EVar as, litType = sub e }):ls)