[project @ 2004-02-24 15:57:52 by simonpj]
[ghc-hetmet.git] / ghc / compiler / typecheck / TcRnTypes.lhs
index 14eae9b..e5a8e1c 100644 (file)
@@ -156,11 +156,18 @@ data TcGblEnv
                -- rather like the free variables of the program, but
                -- are implicit instead of explicit.
 
+       tcg_th_used :: TcRef Bool,      -- True <=> Template Haskell syntax used
+               -- We need this so that we can generate a dependency on the
+               -- Template Haskell package, becuase the desugarer is going to
+               -- emit loads of references to TH symbols.  It's rather like 
+               -- tcg_inst_uses; the reference is implicit rather than explicit,
+               -- so we have to zap a mutable variable.
+
                -- Now a bunch of things about this module that are simply 
                -- accumulated, but never consulted until the end.  
                -- Nevertheless, it's convenient to accumulate them along 
                -- with the rest of the info from this module.
-       tcg_exports :: Avails,                  -- What is exported
+       tcg_exports :: NameSet,                 -- What is exported
        tcg_imports :: ImportAvails,            -- Information about what was imported 
                                                --    from where, including things bound
                                                --    in this module
@@ -353,15 +360,14 @@ data TcTyThing
   = AGlobal TyThing                    -- Used only in the return type of a lookup
   | ATcId   TcId ThLevel ProcLevel     -- Ids defined in this module; may not be fully zonked
   | ATyVar  TyVar                      -- Type variables
-  | ARecTyCon TcKind                   -- Used temporarily, during kind checking, for the
-  | ARecClass TcKind                   --      tycons and clases in this recursive group
+  | AThing  TcKind                     -- Used temporarily, during kind checking, for the
+                                       --      tycons and clases in this recursive group
 
 instance Outputable TcTyThing where    -- Debugging only
    ppr (AGlobal g)      = text "AGlobal" <+> ppr g
    ppr (ATcId g tl pl)  = text "ATcId" <+> ppr g <+> ppr tl <+> ppr pl
    ppr (ATyVar t)       = text "ATyVar" <+> ppr t
-   ppr (ARecTyCon k)    = text "ARecTyCon" <+> ppr k
-   ppr (ARecClass k)    = text "ARecClass" <+> ppr k
+   ppr (AThing k)       = text "AThing" <+> ppr k
 \end{code}
 
 \begin{code}