In interface files, store FastStrings rather than OccNames where possible
[ghc-hetmet.git] / compiler / typecheck / TcRnTypes.lhs
index 62281b5..4ad1b0d 100644 (file)
@@ -59,13 +59,13 @@ import RdrName              ( GlobalRdrEnv, LocalRdrEnv )
 import Name            ( Name )
 import NameEnv
 import NameSet         ( NameSet, unionNameSets, DefUses )
-import OccName         ( OccEnv )
 import Var             ( Id, TyVar )
 import VarEnv          ( TidyEnv )
 import Module
 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 )
@@ -266,8 +266,8 @@ data IfLclEnv
                --      .hi file, or GHCi state, or ext core
                -- plus which bit is currently being examined
 
-       if_tv_env  :: OccEnv TyVar,     -- Nested tyvar bindings
-       if_id_env  :: OccEnv Id         -- Nested id binding
+       if_tv_env  :: UniqFM TyVar,     -- Nested tyvar bindings
+       if_id_env  :: UniqFM Id         -- Nested id binding
     }
 \end{code}
 
@@ -352,6 +352,8 @@ type ThLevel = Int
        --      (always >= 0)
        -- Incremented when going inside a bracket,
        -- decremented when going inside a splice
+       -- NB: ThLevel is one greater than the 'n' in Fig 2 of the
+       --     original "Template meta-programmign for Haskell" paper
 
 impLevel, topLevel :: ThLevel
 topLevel = 1   -- Things defined at top level of this module