import RdrHsSyn ( RdrNameStmt )
import Rename ( renameStmt )
import ByteCodeGen ( byteCodeGen )
+import Id ( Id, idName, idFlavour, modifyIdInfo )
+import IdInfo ( setFlavourInfo, makeConstantFlavour )
+import HscTypes ( InteractiveContext(..), TyThing(..) )
#endif
import HsSyn
import CodeGen ( codeGen )
import CodeOutput ( codeOutput )
-import Id ( Id, idName, idFlavour, modifyIdInfo )
-import IdInfo ( setFlavourInfo, makeConstantFlavour )
import Module ( ModuleName, moduleName, mkHomeModule,
moduleUserString )
import CmdLineOpts
import HscStats ( ppSourceStats )
import HscTypes ( ModDetails, ModIface(..), PersistentCompilerState(..),
PersistentRenamerState(..), ModuleLocation(..),
- HomeSymbolTable, InteractiveContext(..),
+ HomeSymbolTable,
NameSupply(..), PackageRuleBase, HomeIfaceTable,
typeEnvClasses, typeEnvTyCons, emptyIfaceTable
)
{-# OPTIONS -fno-warn-incomplete-patterns #-}
-----------------------------------------------------------------------------
--- $Id: Main.hs,v 1.56 2001/02/27 15:25:18 simonmar Exp $
+-- $Id: Main.hs,v 1.57 2001/02/28 11:44:39 simonpj Exp $
--
-- GHC Driver program
--
#ifdef GHCI
import InteractiveUI
+import Char ( toLower )
#endif
#ifndef mingw32_TARGET_OS
\begin{code}
rn_mono_binds :: [RenamedSig] -- Signatures attached to this group
-> RdrNameMonoBinds
- -> RnMS (RenamedHsBinds, --
- FreeVars) -- Free variables
+ -> RnMS (RenamedHsBinds, -- Dependency analysed
+ FreeVars) -- Free variables
rn_mono_binds siglist mbinds
=
import FiniteMap
import PrelNames ( pRELUDE_Name, mAIN_Name, main_RDR_Unqual, isUnboundName )
import UniqFM ( lookupUFM )
-import Bag ( bagToList )
import Module ( ModuleName, moduleName, WhereFrom(..) )
import NameSet
import Name ( Name, nameSrcLoc, nameOccName, nameEnvElts )
minusFVBinder :: Id -> FreeVarsInfo -> FreeVarsInfo
minusFVBinder v fv | isId v && opt_KeepStgTypes
= (fv `delVarEnv` v) `unionFVInfo`
- tyvarFVInfo (tyVarsOfType (idType v))
- | otherwise
- = fv `delVarEnv` v
+ tyvarFVInfo (tyVarsOfType (idType v))
+ | otherwise = fv `delVarEnv` v
-- When removing a binder, remember to add its type variables
-- c.f. CoreFVs.delBinderFV
import Class ( Class, ClassOpItem, ClassContext )
import Name ( Name, OccName, NamedThing(..),
nameOccName, getSrcLoc, mkLocalName, isLocalName,
- nameIsLocalOrFrom, nameModule_maybe
+ nameIsLocalOrFrom
)
import Name ( NameEnv, lookupNameEnv, nameEnvElts,
extendNameEnvList, emptyNameEnv, plusNameEnv )