Do not filter the type envt after each GHCi stmt
[ghc-hetmet.git] / compiler / typecheck / TcRnTypes.lhs
index b7b8bd2..46ff1e8 100644 (file)
@@ -43,14 +43,14 @@ module TcRnTypes(
 
 import HsSyn           ( PendingSplice, HsOverLit, LRuleDecl, LForeignDecl,
                          ArithSeqInfo, DictBinds, LHsBinds, LImportDecl, HsGroup,
-                          HsWrapper, IE )
+                          HsWrapper, IE, HsDoc, HaddockModInfo )
 import HscTypes                ( FixityEnv,
                          HscEnv, TypeEnv, TyThing, 
                          GenAvailInfo(..), AvailInfo, HscSource(..),
                          availName, IsBootInterface, Deprecations )
 import Packages                ( PackageId )
 import Type            ( Type, pprTyThingCategory )
-import TcType          ( TcTyVarSet, TcType, TcThetaType, SkolemInfo, TvSubst,
+import TcType          ( TcTyVarSet, TcType, TcThetaType, SkolemInfo, 
                          TcPredType, TcKind, tcCmpPred, tcCmpType,
                          tcCmpTypes, pprSkolInfo )
 import InstEnv         ( Instance, InstEnv )
@@ -67,7 +67,6 @@ import UniqFM
 import SrcLoc          ( SrcSpan, SrcLoc, Located, srcSpanStart )
 import VarSet          ( IdSet )
 import ErrUtils                ( Messages, Message )
-import UniqFM           ( UniqFM )
 import UniqSupply      ( UniqSupply )
 import BasicTypes      ( IPName )
 import Util            ( thenCmp )
@@ -224,11 +223,15 @@ data TcGblEnv
        tcg_rn_decls :: Maybe (HsGroup Name),   -- renamed decls, maybe
                -- Nothing <=> Don't retain renamed decls
 
-       tcg_binds   :: LHsBinds Id,             -- Value bindings in this module
-       tcg_deprecs :: Deprecations,            -- ...Deprecations 
-       tcg_insts   :: [Instance],              -- ...Instances
-       tcg_rules   :: [LRuleDecl Id],          -- ...Rules
-       tcg_fords   :: [LForeignDecl Id]        -- ...Foreign import & exports
+       tcg_binds     :: LHsBinds Id,       -- Value bindings in this module
+       tcg_deprecs   :: Deprecations,      -- ...Deprecations 
+       tcg_insts     :: [Instance],        -- ...Instances
+       tcg_fam_insts :: [FamInst],         -- ...Family instances
+       tcg_rules     :: [LRuleDecl Id],    -- ...Rules
+       tcg_fords     :: [LForeignDecl Id], -- ...Foreign import & exports
+
+       tcg_doc :: Maybe (HsDoc Name), -- Maybe Haddock documentation
+        tcg_hmi :: HaddockModInfo Name -- Haddock module information
     }
 \end{code}
 
@@ -800,6 +803,7 @@ data InstOrigin
   | RecordUpdOrigin
   | InstScOrigin       -- Typechecking superclasses of an instance declaration
   | DerivOrigin                -- Typechecking deriving
+  | StandAloneDerivOrigin -- Typechecking stand-alone deriving
   | DefaultOrigin      -- Typechecking a default decl
   | DoOrigin           -- Arising from a do expression
   | ProcOrigin         -- Arising from a proc expression
@@ -821,6 +825,7 @@ pprInstLoc (InstLoc orig locn _)
     pp_orig InstSigOrigin       = ptext SLIT("instantiating a type signature")
     pp_orig InstScOrigin        = ptext SLIT("the superclasses of an instance declaration")
     pp_orig DerivOrigin                 = ptext SLIT("the 'deriving' clause of a data type declaration")
+    pp_orig StandAloneDerivOrigin = ptext SLIT("a 'deriving' declaration")
     pp_orig DefaultOrigin       = ptext SLIT("a 'default' declaration")
     pp_orig DoOrigin            = ptext SLIT("a do statement")
     pp_orig ProcOrigin          = ptext SLIT("a proc expression")