Add PrimCall to the STG layer and update Core -> STG translation
[ghc-hetmet.git] / compiler / prelude / TysWiredIn.lhs
index 3e49d5e..a279b4b 100644 (file)
@@ -56,6 +56,8 @@ module TysWiredIn (
        parrTyCon_RDR, parrTyConName
     ) where
 
+#include "HsVersions.h"
+
 import {-# SOURCE #-} MkId( mkDataConIds )
 
 -- friends:
@@ -66,8 +68,7 @@ import TysPrim
 import Constants       ( mAX_TUPLE_SIZE )
 import Module          ( Module )
 import RdrName
-import Name            ( Name, BuiltInSyntax(..), nameUnique, nameOccName, 
-                         nameModule, mkWiredInName )
+import Name
 import OccName         ( mkTcOccFS, mkDataOccFS, mkTupleOcc, mkDataConWorkerOcc,
                          tcName, dataName )
 import DataCon         ( DataCon, mkDataCon, dataConWorkId, dataConSourceArity )
@@ -222,7 +223,6 @@ pcTyCon is_enum is_rec name tyvars cons
                 tyvars
                 []             -- No stupid theta
                (DataTyCon cons is_enum)
-               []              -- No record selectors
                NoParentTyCon
                 is_rec
                True            -- All the wired-in tycons have generics
@@ -249,12 +249,14 @@ pcDataConWithFixity declared_infix dc_name tyvars arg_tys tycon
                []      -- No existential type variables
                []      -- No equality spec
                []      -- No theta
-               arg_tys tycon
+               arg_tys (mkTyConApp tycon (mkTyVarTys tyvars)) 
+               tycon
                []      -- No stupid theta
                (mkDataConIds bogus_wrap_name wrk_name data_con)
                
 
-    modu      = nameModule dc_name
+    modu     = ASSERT( isExternalName dc_name ) 
+              nameModule dc_name
     wrk_occ  = mkDataConWorkerOcc (nameOccName dc_name)
     wrk_key  = incrUnique (nameUnique dc_name)
     wrk_name = mkWiredInName modu wrk_occ wrk_key