import TcEnv ( tcExtendIdEnv )
#endif
-import HsSyn ( emptyLHsBinds )
+import HsSyn ( emptyLHsBinds, HaddockModInfo(..) )
import HscTypes ( HscEnv(..), ModGuts(..), ModIface(..),
TypeEnv, emptyTypeEnv, HscSource(..), isHsBoot,
ExternalPackageState(..), HomePackageTable,
import RdrName ( GlobalRdrEnv, LocalRdrEnv, emptyLocalRdrEnv )
import Name ( Name, mkInternalName, tidyNameOcc, nameOccName, getSrcLoc )
import Type ( Type )
-import TcType ( tcIsTyVarTy, tcGetTyVar )
+import TcType ( TcType, tcIsTyVarTy, tcGetTyVar )
import NameEnv ( extendNameEnvList, nameEnvElts )
import InstEnv ( emptyInstEnv )
import FamInstEnv ( emptyFamInstEnv )
import Var ( setTyVarName )
+import Id ( mkSysLocal )
import VarSet ( emptyVarSet )
import VarEnv ( TidyEnv, emptyTidyEnv, extendVarEnv )
import ErrUtils ( Message, Messages, emptyMessages, errorsFound,
import OccName ( emptyOccEnv, tidyOccName )
import Bag ( emptyBag )
import Outputable
-import UniqSupply ( UniqSupply, mkSplitUniqSupply, uniqFromSupply, splitUniqSupply )
+import UniqSupply ( UniqSupply, mkSplitUniqSupply, uniqFromSupply, uniqsFromSupply, splitUniqSupply )
import UniqFM ( unitUFM )
import Unique ( Unique )
import DynFlags ( DynFlags(..), DynFlag(..), dopt, dopt_set,
dopt_unset, GhcMode )
import StaticFlags ( opt_PprStyle_Debug )
+import FastString ( FastString )
import Bag ( snocBag, unionBags )
import Panic ( showException )
tcg_rules = [],
tcg_fords = [],
tcg_dfun_n = dfun_n_var,
- tcg_keep = keep_var
+ tcg_keep = keep_var,
+ tcg_doc = Nothing,
+ tcg_hmi = HaddockModInfo Nothing Nothing Nothing Nothing
} ;
lcl_env = TcLclEnv {
tcl_errs = errs_var,
newLocalName :: Name -> TcRnIf gbl lcl Name
newLocalName name -- Make a clone
- = newUnique `thenM` \ uniq ->
- returnM (mkInternalName uniq (nameOccName name) (getSrcLoc name))
+ = do { uniq <- newUnique
+ ; return (mkInternalName uniq (nameOccName name) (getSrcLoc name)) }
+
+newSysLocalIds :: FastString -> [TcType] -> TcRnIf gbl lcl [TcId]
+newSysLocalIds fs tys
+ = do { us <- newUniqueSupply
+ ; return (zipWith (mkSysLocal fs) (uniqsFromSupply us) tys) }
\end{code}