[Create proper values for conjured Absured and Box types
John Meacham <john@repetae.net>**20110131091932
 Ignore-this: 7268db023bcc4dc5ee37de2bb2480c59
] hunk ./src/DataConstructors.hs 199
+{-# NOINLINE getConstructor #-}
hunk ./src/DataConstructors.hs 201
-getConstructor n _ | Just e <- fromConjured modAbsurd  n = return emptyConstructor { conName = n, conType = e, conExpr = tAbsurd e, conInhabits = tStar }
-getConstructor n _ | Just e <- fromConjured modBox  n = return emptyConstructor { conName = n, conType = e, conExpr = mktBox e, conInhabits = tStar }
+getConstructor n _ | isJust me = return (emptyConstructor {
+    conName = n, conType = e,
+    conExpr = foldr ELam (foldl eAp (mktBox e) (map EVar tvrs)) tvrs,
+    conInhabits = tStar, conOrigSlots = map SlotNormal sts }) where
+        sts = map tvrType ss
+        tvrs = [ tvr { tvrIdent = i , tvrType = t } | i <- anonymousIds | t <- sts ]
+        (_,ss) = fromPi e
+        me@(~(Just e)) = fromConjured modBox n `mplus` fromConjured modAbsurd n
hunk ./src/DataConstructors.hs 217
-
hunk ./src/DataConstructors.hs 223
-
hunk ./src/DataConstructors.hs 757
+{-# NOINLINE showDataTable #-}
hunk ./src/DataConstructors.hs 779
+{-# NOINLINE samplePrimitiveDataTable #-}
hunk ./src/DataConstructors.hs 783
-    xs = nt 0 ++ nt 3 ++ [nameConjured modAbsurd eStar,nameConjured modBox hs,rt_bits16,rt_bits_ptr_]
+    xs = nt 0 ++ nt 3 ++ [nameConjured modAbsurd eStar,nameConjured modBox hs, nameConjured modAbsurd hs', nameConjured modBox hs',rt_bits16,rt_bits_ptr_]
hunk ./src/DataConstructors.hs 785
+    hs' = tFunc eStar (tFunc (tFunc eStar eHash) eStar)
hunk ./src/DataConstructors.hs 958
-