X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FcoreSyn%2FExternalCore.lhs;h=a326a54a6cdba213f42ddfeb5084e19b64a71666;hp=49a77530f4d8cad74f545c9ea253eee38b0b2dba;hb=e4417dcd4679da9c6b18c02ff667199c572bed89;hpb=4905e62021b94b01cdb3a83b22d81d8c763b36f9 diff --git a/compiler/coreSyn/ExternalCore.lhs b/compiler/coreSyn/ExternalCore.lhs index 49a7753..a326a54 100644 --- a/compiler/coreSyn/ExternalCore.lhs +++ b/compiler/coreSyn/ExternalCore.lhs @@ -10,17 +10,19 @@ data Module data Tdef = Data (Qual Tcon) [Tbind] [Cdef] - | Newtype (Qual Tcon) [Tbind] (Maybe Ty) + | Newtype (Qual Tcon) (Qual Tcon) [Tbind] (Maybe Ty) data Cdef - = Constr Dcon [Tbind] [Ty] - | GadtConstr Dcon Ty + = Constr (Qual Dcon) [Tbind] [Ty] + | GadtConstr (Qual Dcon) Ty data Vdefg = Rec [Vdef] | Nonrec Vdef -type Vdef = (Bool,Var,Ty,Exp) -- Top level bindings are unqualified now +-- Top-level bindings are qualified, so that the printer doesn't have to pass +-- around the module name. +type Vdef = (Bool,Qual Var,Ty,Exp) data Exp = Var (Qual Var) @@ -81,7 +83,9 @@ type Qual t = (Mname,t) type Id = String primMname :: Mname -primMname = "base:GHC.Prim" +-- For truly horrible reasons, this must be z-encoded. +-- With any hope, the z-encoding will die soon. +primMname = "ghczmprim:GHCziPrim" tcArrow :: Qual Tcon tcArrow = (primMname, "(->)")