Module header tidyup, phase 1
authorSimon Marlow <simonmar@microsoft.com>
Wed, 11 Oct 2006 12:05:17 +0000 (12:05 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Wed, 11 Oct 2006 12:05:17 +0000 (12:05 +0000)
This patch is a start on removing import lists and generally tidying
up the top of each module.  In addition to removing import lists:

   - Change DATA.IOREF -> Data.IORef etc.
   - Change List -> Data.List etc.
   - Remove $Id$
   - Update copyrights
   - Re-order imports to put non-GHC imports last
   - Remove some unused and duplicate imports

108 files changed:
compiler/HsVersions.h
compiler/basicTypes/BasicTypes.lhs
compiler/basicTypes/DataCon.lhs
compiler/basicTypes/Demand.lhs
compiler/basicTypes/Id.lhs
compiler/basicTypes/IdInfo.lhs
compiler/basicTypes/Literal.lhs
compiler/basicTypes/MkId.lhs
compiler/basicTypes/Module.lhs
compiler/basicTypes/Name.lhs
compiler/basicTypes/NameEnv.lhs
compiler/basicTypes/NameSet.lhs
compiler/basicTypes/NewDemand.lhs
compiler/basicTypes/OccName.lhs
compiler/basicTypes/RdrName.lhs
compiler/basicTypes/SrcLoc.lhs
compiler/basicTypes/UniqSupply.lhs
compiler/basicTypes/Unique.lhs
compiler/basicTypes/Var.lhs
compiler/basicTypes/VarEnv.lhs
compiler/basicTypes/VarSet.lhs
compiler/cmm/CLabel.hs
compiler/cmm/Cmm.hs
compiler/cmm/CmmLex.x
compiler/cmm/CmmLint.hs
compiler/cmm/CmmOpt.hs
compiler/cmm/CmmParse.y
compiler/cmm/CmmUtils.hs
compiler/cmm/MachOp.hs
compiler/cmm/PprC.hs
compiler/cmm/PprCmm.hs
compiler/codeGen/Bitmap.hs
compiler/codeGen/CgBindery.lhs
compiler/codeGen/CgCallConv.hs
compiler/codeGen/CgCase.lhs
compiler/codeGen/CgClosure.lhs
compiler/codeGen/CgCon.lhs
compiler/codeGen/CgExpr.lhs
compiler/codeGen/CgForeignCall.hs
compiler/codeGen/CgHeapery.lhs
compiler/codeGen/CgInfoTbls.hs
compiler/codeGen/CgLetNoEscape.lhs
compiler/codeGen/CgMonad.lhs
compiler/codeGen/CgParallel.hs
compiler/codeGen/CgPrimOp.hs
compiler/codeGen/CgProf.hs
compiler/codeGen/CgStackery.lhs
compiler/codeGen/CgTailCall.lhs
compiler/codeGen/CgTicky.hs
compiler/codeGen/CgUtils.hs
compiler/codeGen/ClosureInfo.lhs
compiler/codeGen/CodeGen.lhs
compiler/codeGen/SMRep.lhs
compiler/coreSyn/CoreFVs.lhs
compiler/coreSyn/CoreLint.lhs
compiler/coreSyn/CorePrep.lhs
compiler/coreSyn/CoreSubst.lhs
compiler/coreSyn/CoreSyn.lhs
compiler/coreSyn/CoreTidy.lhs
compiler/coreSyn/CoreUnfold.lhs
compiler/coreSyn/CoreUtils.lhs
compiler/coreSyn/ExternalCore.lhs
compiler/coreSyn/MkExternalCore.lhs
compiler/coreSyn/PprCore.lhs
compiler/coreSyn/PprExternalCore.lhs
compiler/cprAnalysis/CprAnalyse.lhs
compiler/deSugar/Check.lhs
compiler/deSugar/Desugar.lhs
compiler/deSugar/DsArrows.lhs
compiler/deSugar/DsBinds.lhs
compiler/deSugar/DsCCall.lhs
compiler/deSugar/DsExpr.lhs
compiler/deSugar/DsForeign.lhs
compiler/deSugar/DsGRHSs.lhs
compiler/deSugar/DsListComp.lhs
compiler/deSugar/DsMeta.hs
compiler/deSugar/DsMonad.lhs
compiler/deSugar/DsUtils.lhs
compiler/deSugar/Match.lhs
compiler/deSugar/MatchCon.lhs
compiler/deSugar/MatchLit.lhs
compiler/deSugar/deSugar.tex [deleted file]
compiler/iface/BinIface.hs
compiler/iface/BuildTyCl.lhs
compiler/iface/IfaceEnv.lhs
compiler/iface/IfaceSyn.lhs
compiler/iface/IfaceType.lhs
compiler/iface/LoadIface.lhs
compiler/iface/MkIface.lhs
compiler/iface/TcIface.lhs
compiler/main/HscMain.lhs
compiler/main/HscTypes.lhs
compiler/main/TidyPgm.lhs
compiler/ndpFlatten/Flattening.hs
compiler/prelude/PrelRules.lhs
compiler/prelude/TysPrim.lhs
compiler/simplCore/SimplMonad.lhs
compiler/typecheck/FamInst.lhs
compiler/typecheck/Inst.lhs
compiler/typecheck/TcArrows.lhs
compiler/typecheck/TcBinds.lhs
compiler/typecheck/TcClassDcl.lhs
compiler/typecheck/TcDefaults.lhs
compiler/typecheck/TcDeriv.lhs
compiler/typecheck/TcEnv.lhs
compiler/typecheck/TcRnMonad.lhs
compiler/typecheck/TcTyDecls.lhs
compiler/typecheck/TcType.lhs

index dd80922..68884c0 100644 (file)
@@ -22,42 +22,6 @@ you will screw up the layout where they are used in case expressions!
  * settings for the target plat instead). */
 #include "../includes/ghcautoconf.h"
 
  * settings for the target plat instead). */
 #include "../includes/ghcautoconf.h"
 
-#if __GLASGOW_HASKELL__ >= 504
-
-#define CONCURRENT  Control.Concurrent
-#define EXCEPTION   Control.Exception
-     /* If you want Control.Exception.try, get it as Panic.try, which
-        deals with the shift from 'tryAllIO' to 'try'.  */
-#define DYNAMIC     Data.Dynamic
-#define GLAEXTS     GHC.Exts
-#define DATA_BITS   Data.Bits
-#define DATA_INT    Data.Int
-#define DATA_WORD   Data.Word
-#define UNSAFE_IO   System.IO.Unsafe
-#define TRACE       Debug.Trace
-#define DATA_IOREF  Data.IORef
-#define FIX_IO      System.IO
-#define MONAD_ST    Control.Monad.ST
-#define ST_ARRAY    Data.Array.ST
-
-#else
-
-#define CONCURRENT  Concurrent
-#define EXCEPTION   Exception
-#define DYNAMIC     Dynamic
-#define GLAEXTS     GlaExts
-#define DATA_BITS   Bits
-#define DATA_INT    Int
-#define DATA_WORD   Word
-#define UNSAFE_IO   IOExts
-#define TRACE       IOExts
-#define DATA_IOREF  IOExts
-#define FIX_IO      IOExts
-#define MONAD_ST    ST
-#define ST_ARRAY    ST
-
-#endif
-
 #ifdef __GLASGOW_HASKELL__
 #define GLOBAL_VAR(name,value,ty)  \
 name = Util.global (value) :: IORef (ty); \
 #ifdef __GLASGOW_HASKELL__
 #define GLOBAL_VAR(name,value,ty)  \
 name = Util.global (value) :: IORef (ty); \
index c43280f..278a284 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1997-1998
 %
 \section[BasicTypes]{Miscellanous types}
 % (c) The GRASP/AQUA Project, Glasgow University, 1997-1998
 %
 \section[BasicTypes]{Miscellanous types}
index 8829128..b2e166b 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1998
 %
 \section[DataCon]{@DataCon@: Data Constructors}
 % (c) The GRASP/AQUA Project, Glasgow University, 1998
 %
 \section[DataCon]{@DataCon@: Data Constructors}
@@ -29,26 +30,18 @@ module DataCon (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import Type            ( Type, ThetaType, 
-                         substTyWith, substTyVar, mkTopTvSubst, 
-                         mkForAllTys, mkFunTys, mkTyConApp, mkTyVarTy, mkTyVarTys, 
-                         splitTyConApp_maybe, newTyConInstRhs, 
-                         mkPredTys, isStrictPred, pprType
-                       )
-import Coercion                ( isEqPred, mkEqPred )
-import TyCon           ( TyCon, FieldLabel, tyConDataCons, 
-                         isProductTyCon, isTupleTyCon, isUnboxedTupleTyCon,
-                          isNewTyCon, isClosedNewTyCon, isRecursiveTyCon,
-                          tyConFamInst_maybe )
-import Class           ( Class, classTyCon )
-import Name            ( Name, NamedThing(..), nameUnique )
-import Var             ( TyVar, Id )
-import BasicTypes      ( Arity, StrictnessMark(..) )
+import Type
+import Coercion
+import TyCon
+import Class
+import Name
+import Var
+import BasicTypes
 import Outputable
 import Outputable
-import Unique          ( Unique, Uniquable(..) )
-import ListSetOps      ( assoc, minusList )
-import Util            ( zipEqual, zipWithEqual )
-import Maybes           ( expectJust )
+import Unique
+import ListSetOps
+import Util
+import Maybes
 import FastString
 \end{code}
 
 import FastString
 \end{code}
 
index 50bb0c6..78b46a7 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Demand]{@Demand@: the amount of demand on a value}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Demand]{@Demand@: the amount of demand on a value}
@@ -27,7 +28,7 @@ module Demand(
 #include "HsVersions.h"
 
 import Outputable
 #include "HsVersions.h"
 
 import Outputable
-import Util ( listLengthCmp )
+import Util
 \end{code}
 
 
 \end{code}
 
 
index c9c503d..edaeb7a 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Id]{@Ids@: Value and constructor identifiers}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Id]{@Ids@: Value and constructor identifiers}
@@ -79,42 +80,29 @@ module Id (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-
-import CoreSyn         ( Unfolding, CoreRule )
-import BasicTypes      ( Arity )
-import Var             ( Id, DictId,
-                         isId, isExportedId, isLocalId,
-                         idName, idType, idUnique, idInfo, isGlobalId,
-                         setIdName, setIdType, setIdUnique, 
-                         setIdExported, setIdNotExported,
-                         setIdInfo, lazySetIdInfo, modifyIdInfo, 
-                         maybeModifyIdInfo,
-                         globalIdDetails
-                       )
-import qualified Var   ( mkLocalId, mkGlobalId, mkExportedLocalId )
-import TyCon           ( FieldLabel, TyCon )
-import Type            ( Type, typePrimRep, addFreeTyVars, seqType, 
-                         splitTyConApp_maybe, PrimRep )
-import TcType          ( isDictTy )
-import TysPrim         ( statePrimTyCon )
+import CoreSyn
+import BasicTypes
+import qualified Var
+import Var hiding (mkLocalId, mkGlobalId, mkExportedLocalId)
+import TyCon
+import Type
+import TcType
+import TysPrim
 import IdInfo 
 import IdInfo 
-
 #ifdef OLD_STRICTNESS
 #ifdef OLD_STRICTNESS
-import qualified Demand        ( Demand )
+import qualified Demand
 #endif
 #endif
-import DataCon         ( DataCon, isUnboxedTupleCon )
-import NewDemand       ( Demand, StrictSig, topDmd, topSig, isBottomingSig )
-import Name            ( Name, OccName, nameIsLocalOrFrom, 
-                         mkSystemVarName, mkInternalName, getOccName,
-                         getSrcLoc ) 
-import Module          ( Module )
-import OccName         ( mkWorkerOcc )
-import Maybes          ( orElse )
-import SrcLoc          ( SrcLoc )
+import DataCon
+import NewDemand
+import Name
+import Module
+import OccName
+import Maybes
+import SrcLoc
 import Outputable
 import Outputable
-import Unique          ( Unique, mkBuiltinUnique )
-import FastString      ( FastString )
-import StaticFlags     ( opt_NoStateHack )
+import Unique
+import FastString
+import StaticFlags
 
 -- infixl so you can say (id `set` a `set` b)
 infixl         1 `setIdUnfolding`,
 
 -- infixl so you can say (id `set` a `set` b)
 infixl         1 `setIdUnfolding`,
index d53bf56..9db8e35 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 \section[IdInfo]{@IdInfos@: Non-essential information about @Ids@}
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 \section[IdInfo]{@IdInfos@: Non-essential information about @Ids@}
@@ -75,31 +76,26 @@ module IdInfo (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-
 import CoreSyn
 import CoreSyn
-import Class           ( Class )
-import PrimOp          ( PrimOp )
-import Var              ( Id )
-import VarSet          ( VarSet, emptyVarSet, seqVarSet )
-import BasicTypes      ( OccInfo(..), isFragileOcc, isDeadOcc, seqOccInfo, isLoopBreaker,
-                         InsideLam, insideLam, notInsideLam, 
-                         OneBranch, oneBranch, notOneBranch,
-                         Arity,
-                         Activation(..)
-                       )
-import DataCon         ( DataCon )
-import TyCon           ( TyCon, FieldLabel )
-import ForeignCall     ( ForeignCall )
+import Class
+import PrimOp
+import Var
+import VarSet
+import BasicTypes
+import DataCon
+import TyCon
+import ForeignCall
 import NewDemand
 import Outputable      
 import NewDemand
 import Outputable      
-import Maybe           ( isJust )
+
+import Data.Maybe
 
 #ifdef OLD_STRICTNESS
 
 #ifdef OLD_STRICTNESS
-import Name            ( Name )
-import Demand          hiding( Demand, seqDemand )
+import Name
+import Demand
 import qualified Demand
 import qualified Demand
-import Util            ( listLengthCmp )
-import List            ( replicate )
+import Util
+import Data.List
 #endif
 
 -- infixl so you can say (id `set` a `set` b)
 #endif
 
 -- infixl so you can say (id `set` a `set` b)
index e83ea9d..f05d1bf 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1998
 %
 \section[Literal]{@Literal@: Machine literals (unboxed, of course)}
 % (c) The GRASP/AQUA Project, Glasgow University, 1998
 %
 \section[Literal]{@Literal@: Machine literals (unboxed, of course)}
@@ -26,24 +27,21 @@ module Literal
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import TysPrim         ( charPrimTy, addrPrimTy, floatPrimTy, doublePrimTy,
-                         intPrimTy, wordPrimTy, int64PrimTy, word64PrimTy
-                       )
-import Type            ( Type )
+import TysPrim
+import Type
 import Outputable
 import FastTypes
 import FastString
 import Binary
 import Outputable
 import FastTypes
 import FastString
 import Binary
+import Ratio
+import FastString
 
 
-import Ratio           ( numerator )
-import FastString      ( uniqueOfFS, lengthFS )
-import DATA_INT                ( Int8,  Int16,  Int32 )
-import DATA_WORD       ( Word8, Word16, Word32 )
-import Char            ( ord, chr )
+import Data.Int
+import Data.Word
+import Data.Char
 \end{code}
 
 
 \end{code}
 
 
-
 %************************************************************************
 %*                                                                     *
 \subsection{Sizes}
 %************************************************************************
 %*                                                                     *
 \subsection{Sizes}
index 9818eba..fd4e3e2 100644 (file)
@@ -1,7 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1998
 %
 % (c) The AQUA Project, Glasgow University, 1998
 %
-\section[StdIdInfo]{Standard unfoldings}
 
 This module contains definitions for the IdInfo for things that
 have a standard form, namely:
 
 This module contains definitions for the IdInfo for things that
 have a standard form, namely:
@@ -38,71 +38,40 @@ module MkId (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-
-import BasicTypes      ( Arity, StrictnessMark(..), isMarkedUnboxed, isMarkedStrict )
-import Rules           ( mkSpecInfo )
-import TysPrim         ( openAlphaTyVars, alphaTyVar, alphaTy, 
-                         realWorldStatePrimTy, addrPrimTy
-                       )
-import TysWiredIn      ( charTy, mkListTy )
-import PrelRules       ( primOpRules )
-import Type            ( TyThing(..), mkForAllTy, tyVarsOfTypes, 
-                         newTyConInstRhs, mkTopTvSubst, substTyVar, 
-                         substTys, zipTopTvSubst )
-import TcGadt           ( gadtRefine, refineType, emptyRefinement )
-import HsBinds          ( HsWrapper(..), isIdHsWrapper )
-import Coercion         ( mkSymCoercion, mkUnsafeCoercion, isEqPred )
-import TcType          ( Type, ThetaType, mkDictTy, mkPredTys, mkPredTy, 
-                         mkTyConApp, mkTyVarTys, mkClassPred, isPredTy,
-                         mkFunTys, mkFunTy, mkSigmaTy, tcSplitSigmaTy, tcEqType,
-                         isUnLiftedType, mkForAllTys, mkTyVarTy, tyVarsOfType,
-                         tcSplitFunTys, tcSplitForAllTys, dataConsStupidTheta
-                       )
-import CoreUtils       ( exprType, dataConOrigInstPat, mkCoerce )
-import CoreUnfold      ( mkTopUnfolding, mkCompulsoryUnfolding )
-import Literal         ( nullAddrLit, mkStringLit )
-import TyCon           ( TyCon, isNewTyCon, tyConTyVars, tyConDataCons,
-                         FieldLabel,
-                          tyConStupidTheta, isProductTyCon, isDataTyCon,
-                          isRecursiveTyCon, isFamInstTyCon,
-                          tyConFamInst_maybe, tyConFamilyCoercion_maybe,
-                          newTyConCo_maybe )
-import Class           ( Class, classTyCon, classSelIds )
-import Var             ( Id, TyVar, Var, setIdType )
-import VarSet          ( isEmptyVarSet, subVarSet, varSetElems )
-import Name            ( mkFCallName, mkWiredInName, Name, BuiltInSyntax(..))
-import OccName         ( mkOccNameFS, varName )
-import PrimOp          ( PrimOp, primOpSig, primOpOcc, primOpTag )
-import ForeignCall     ( ForeignCall )
-import DataCon         ( DataCon, DataConIds(..), dataConTyCon,
-                         dataConUnivTyVars, 
-                         dataConFieldLabels, dataConRepArity, dataConResTys,
-                         dataConRepArgTys, dataConRepType, dataConFullSig,
-                         dataConStrictMarks, dataConExStricts, 
-                         splitProductType, isVanillaDataCon, dataConFieldType,
-                         deepSplitProductType, 
-                       )
-import Id              ( idType, mkGlobalId, mkVanillaGlobal, mkSysLocal, 
-                         mkTemplateLocals, mkTemplateLocalsNum, mkExportedLocalId,
-                         mkTemplateLocal, idName
-                       )
-import IdInfo          ( IdInfo, noCafIdInfo,  setUnfoldingInfo, 
-                         setArityInfo, setSpecInfo, setCafInfo,
-                         setAllStrictnessInfo, vanillaIdInfo,
-                         GlobalIdDetails(..), CafInfo(..)
-                       )
-import NewDemand       ( mkStrictSig, DmdResult(..),
-                         mkTopDmdType, topDmd, evalDmd, lazyDmd, retCPR,
-                         Demand(..), Demands(..) )
-import DmdAnal         ( dmdAnalTopRhs )
+import Rules
+import TysPrim
+import TysWiredIn
+import PrelRules
+import Type
+import TcGadt
+import HsBinds
+import Coercion
+import TcType
+import CoreUtils
+import CoreUnfold
+import Literal
+import TyCon
+import Class
+import VarSet
+import Name
+import OccName
+import PrimOp
+import ForeignCall
+import DataCon
+import Id
+import Var              ( Var, TyVar)
+import IdInfo
+import NewDemand
+import DmdAnal
 import CoreSyn
 import CoreSyn
-import Unique          ( mkBuiltinUnique, mkPrimOpIdUnique )
+import Unique
 import Maybes
 import PrelNames
 import Maybes
 import PrelNames
-import Util             ( dropList, isSingleton )
+import BasicTypes       hiding ( SuccessFlag(..) )
+import Util
 import Outputable
 import FastString
 import Outputable
 import FastString
-import ListSetOps      ( assoc, minusList )
+import ListSetOps
 \end{code}             
 
 %************************************************************************
 \end{code}             
 
 %************************************************************************
@@ -1226,9 +1195,5 @@ pc_bottoming_Id name ty
 
     strict_sig    = mkStrictSig (mkTopDmdType [evalDmd] BotRes)
        -- These "bottom" out, no matter what their arguments
 
     strict_sig    = mkStrictSig (mkTopDmdType [evalDmd] BotRes)
        -- These "bottom" out, no matter what their arguments
-
-(openAlphaTyVar:openBetaTyVar:_) = openAlphaTyVars
-openAlphaTy  = mkTyVarTy openAlphaTyVar
-openBetaTy   = mkTyVarTy openBetaTyVar
 \end{code}
 
 \end{code}
 
index 720c51f..ba0459d 100644 (file)
@@ -1,5 +1,5 @@
 %
 %
-% (c) The University of Glasgow, 2004
+% (c) The University of Glasgow, 2004-2006
 %
 
 Module
 %
 
 Module
@@ -48,10 +48,10 @@ module Module
 
 #include "HsVersions.h"
 import Outputable
 
 #include "HsVersions.h"
 import Outputable
-import Unique          ( Uniquable(..) )
+import Unique
 import FiniteMap
 import UniqFM
 import FiniteMap
 import UniqFM
-import PackageConfig   ( PackageId, packageIdFS, mainPackageId )
+import PackageConfig
 import FastString
 import Binary
 \end{code}
 import FastString
 import Binary
 \end{code}
index df97181..feda0b1 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Name]{@Name@: to transmit name info from renamer to typechecker}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Name]{@Name@: to transmit name info from renamer to typechecker}
@@ -37,21 +38,20 @@ module Name (
 
 import {-# SOURCE #-} TypeRep( TyThing )
 
 
 import {-# SOURCE #-} TypeRep( TyThing )
 
-import OccName         -- All of it
-import Module          ( Module )
-import SrcLoc          ( noSrcLoc, wiredInSrcLoc, SrcLoc )
-import UniqFM           ( lookupUFM, addToUFM )
-import Unique          ( Unique, Uniquable(..), getKey, pprUnique,
-                          mkUniqueGrimily, getKey# )
-import Maybes          ( orElse, isJust )
+import OccName
+import Module
+import SrcLoc
+import UniqFM
+import Unique
+import Maybes
 import Binary
 import FastMutInt
 import Binary
 import FastMutInt
-import FastString      ( FastString, zEncodeFS )
+import FastString
 import Outputable
 
 import Outputable
 
-import DATA_IOREF
-import GLAEXTS          ( Int#, Int(..) )
-import Data.Array       ( (!) )
+import Data.IORef
+import GHC.Exts
+import Data.Array
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index 561aeb6..6255e73 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[NameEnv]{@NameEnv@: name environments}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[NameEnv]{@NameEnv@: name environments}
@@ -17,9 +18,9 @@ module NameEnv (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import Name    ( Name )
+import Name
 import UniqFM
 import UniqFM
-import Maybes  ( expectJust )
+import Maybes
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index 2100fc5..5c2c1b8 100644 (file)
@@ -1,7 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1998
 %
-\section[NameSet]{@NameSets@} 
 
 \begin{code}
 module NameSet (
 
 \begin{code}
 module NameSet (
@@ -28,7 +28,6 @@ import Name
 import UniqSet
 \end{code}
 
 import UniqSet
 \end{code}
 
-
 %************************************************************************
 %*                                                                     *
 \subsection[Sets of names}
 %************************************************************************
 %*                                                                     *
 \subsection[Sets of names}
@@ -187,4 +186,4 @@ findUses dus uses
        = rhs_uses `unionNameSets` uses
        | otherwise     -- No def is used
        = uses
        = rhs_uses `unionNameSets` uses
        | otherwise     -- No def is used
        = uses
-\end{code}
\ No newline at end of file
+\end{code}
index 8e68fd8..6da4c47 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Demand]{@Demand@: the amount of demand on a value}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[Demand]{@Demand@: the amount of demand on a value}
@@ -24,11 +25,11 @@ module NewDemand(
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import StaticFlags     ( opt_CprOff )
-import BasicTypes      ( Arity )
-import VarEnv          ( VarEnv, emptyVarEnv, isEmptyVarEnv )
-import UniqFM          ( ufmToList )
-import Util             ( listLengthCmp, zipWithEqual )
+import StaticFlags
+import BasicTypes
+import VarEnv
+import UniqFM
+import Util
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 0d1cb37..92351d6 100644 (file)
@@ -1,10 +1,8 @@
-{-% DrIFT (Automatic class derivations for Haskell) v1.1 %-}
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
-\section[OccName]{@OccName@}
-
 \begin{code}
 module OccName (
        -- * The NameSpace type; abstact
 \begin{code}
 module OccName (
        -- * The NameSpace type; abstact
@@ -65,19 +63,18 @@ module OccName (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import Util            ( thenCmp )
-import Unique          ( Unique, mkUnique, Uniquable(..) )
-import BasicTypes      ( Boxity(..), Arity )
-import StaticFlags     ( opt_PprStyle_Debug )
+import Util
+import Unique
+import BasicTypes
+import StaticFlags
 import UniqFM
 import UniqSet
 import FastString
 import Outputable
 import Binary
 
 import UniqFM
 import UniqSet
 import FastString
 import Outputable
 import Binary
 
-import GLAEXTS
-
-import Data.Char       ( isUpper, isLower, ord )
+import GHC.Exts
+import Data.Char
 
 -- Unicode TODO: put isSymbol in libcompat
 #if __GLASGOW_HASKELL__ > 604
 
 -- Unicode TODO: put isSymbol in libcompat
 #if __GLASGOW_HASKELL__ > 604
index 2f7f7a8..ad1256d 100644 (file)
@@ -1,9 +1,8 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
-\section[RdrName]{@RdrName@}
-
 \begin{code}
 module RdrName (
        RdrName(..),    -- Constructors exported only to BinIface
 \begin{code}
 module RdrName (
        RdrName(..),    -- Constructors exported only to BinIface
@@ -41,14 +40,13 @@ module RdrName (
 #include "HsVersions.h"
 
 import OccName
 #include "HsVersions.h"
 
 import OccName
-import Module   ( ModuleName, mkModuleNameFS, Module, moduleName )
-import Name    ( Name, NamedThing(getName), nameModule,
-                 nameOccName, isExternalName, nameSrcLoc )
-import Maybes  ( mapCatMaybes )
-import SrcLoc  ( isGoodSrcLoc, isGoodSrcSpan, srcLocSpan, SrcSpan )
-import FastString ( FastString )
+import Module
+import Name
+import Maybes
+import SrcLoc
+import FastString
 import Outputable
 import Outputable
-import Util    ( thenCmp )
+import Util
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index 2dc6c48..52c4717 100644 (file)
@@ -1,11 +1,6 @@
 %
 %
-% (c) The University of Glasgow, 1992-2003
+% (c) The University of Glasgow, 1992-2006
 %
 %
-%************************************************************************
-%*                                                                     *
-\section[SrcLoc]{The @SrcLoc@ type}
-%*                                                                     *
-%************************************************************************
 
 \begin{code}
 module SrcLoc (
 
 \begin{code}
 module SrcLoc (
@@ -42,7 +37,7 @@ module SrcLoc (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import Util            ( thenCmp )
+import Util
 import Outputable
 import FastString
 \end{code}
 import Outputable
 import FastString
 \end{code}
index 05b565f..7937043 100644 (file)
@@ -1,7 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[UniqSupply]{The @UniqueSupply@ data type and a (monadic) supply thereof}
 
 \begin{code}
 module UniqSupply (
 
 \begin{code}
 module UniqSupply (
@@ -25,8 +25,8 @@ module UniqSupply (
 
 import Unique
 
 
 import Unique
 
-import GLAEXTS
-import UNSAFE_IO       ( unsafeInterleaveIO )
+import GHC.Exts
+import System.IO.Unsafe        ( unsafeInterleaveIO )
 
 w2i x = word2Int# x
 i2w x = int2Word# x
 
 w2i x = word2Int# x
 i2w x = int2Word# x
index 8743288..058b0be 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
@@ -49,15 +50,14 @@ module Unique (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import BasicTypes      ( Boxity(..) )
-import PackageConfig   ( PackageId, packageIdFS )
-import FastString      ( FastString, uniqueOfFS )
+import BasicTypes
+import PackageConfig
+import FastString
 import Outputable
 import FastTypes
 
 import Outputable
 import FastTypes
 
-import GLAEXTS
-
-import Char            ( chr, ord )
+import GHC.Exts
+import Data.Char       ( chr, ord )
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index faf32d7..3510828 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section{@Vars@: Variables}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section{@Vars@: Variables}
@@ -37,11 +38,10 @@ module Var (
 
 import {-# SOURCE #-}  TypeRep( Type, Kind )
 import {-# SOURCE #-}  TcType( TcTyVarDetails, pprTcTyVarDetails )
 
 import {-# SOURCE #-}  TypeRep( Type, Kind )
 import {-# SOURCE #-}  TcType( TcTyVarDetails, pprTcTyVarDetails )
-import {-# SOURCE #-}  IdInfo( GlobalIdDetails, notGlobalId, IdInfo, seqIdInfo )
-
-import Name            ( Name, NamedThing(..), setNameUnique, nameUnique, mkSysTvName )
-import Unique          ( Unique, Uniquable(..), mkUniqueGrimily, getKey#,
-                          mkBuiltinUnique )
+import {-# SOURCE #-}  IdInfo( GlobalIdDetails, notGlobalId, 
+                                IdInfo, seqIdInfo )
+import Name hiding (varName)
+import Unique
 import FastTypes
 import FastString
 import Outputable       
 import FastTypes
 import FastString
 import Outputable       
index e59c800..3c9f53a 100644 (file)
@@ -1,7 +1,7 @@
-
+%
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section{@VarEnvs@: Variable environments}
 
 \begin{code}
 module VarEnv (
 
 \begin{code}
 module VarEnv (
@@ -36,14 +36,14 @@ module VarEnv (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import OccName   ( TidyOccEnv, emptyTidyOccEnv )
-import Var       ( Var, setVarUnique )
+import OccName
+import Var
 import VarSet
 import UniqFM  
 import VarSet
 import UniqFM  
-import Unique    ( Unique, deriveUnique, getUnique )
-import Util      ( zipEqual, foldl2 )
-import Maybes    ( orElse )
-import StaticFlags( opt_PprStyle_Debug )
+import Unique
+import Util
+import Maybes
+import StaticFlags
 import Outputable
 import FastTypes
 \end{code}
 import Outputable
 import FastTypes
 \end{code}
index 812213d..7e08d9d 100644 (file)
@@ -1,7 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section{@VarSet@: Variable sets}
 
 \begin{code}
 module VarSet (
 
 \begin{code}
 module VarSet (
@@ -19,10 +19,10 @@ module VarSet (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import Var             ( Var, Id, TyVar )
-import Unique          ( Unique )
+import Var
+import Unique
 import UniqSet
 import UniqSet
-import UniqFM          ( delFromUFM_Directly, addToUFM_C )
+import UniqFM
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index a93fba5..f6c5148 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Object-file symbols (called CLabel for histerical raisins).
 --
 --
 -- Object-file symbols (called CLabel for histerical raisins).
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -103,16 +103,16 @@ module CLabel (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import StaticFlags     ( opt_Static, opt_DoTickyProfiling )
-import Packages                ( isDllName )
-import DataCon         ( ConTag )
-import PackageConfig   ( PackageId )
-import Module          ( Module, modulePackageId )
-import Name            ( Name, isExternalName )
-import Unique          ( pprUnique, Unique )
-import PrimOp          ( PrimOp )
-import Config          ( cLeadingUnderscore )
-import CostCentre      ( CostCentre, CostCentreStack )
+import StaticFlags
+import Packages
+import DataCon
+import PackageConfig
+import Module
+import Name
+import Unique
+import PrimOp
+import Config
+import CostCentre
 import Outputable
 import FastString
 
 import Outputable
 import FastString
 
index 13961c1..d30f963 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Cmm data types
 --
 --
 -- Cmm data types
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -26,11 +26,12 @@ module Cmm (
 #include "HsVersions.h"
 
 import MachOp
 #include "HsVersions.h"
 
 import MachOp
-import CLabel          ( CLabel )
-import ForeignCall     ( CCallConv )
-import Unique          ( Unique, Uniquable(..) )
-import FastString      ( FastString )
-import DATA_WORD       ( Word8 )
+import CLabel
+import ForeignCall
+import Unique
+import FastString
+
+import Data.Word
 
 -----------------------------------------------------------------------------
 --             Cmm, CmmTop, CmmBasicBlock
 
 -----------------------------------------------------------------------------
 --             Cmm, CmmTop, CmmBasicBlock
index 2bf4ff3..fb1179f 100644 (file)
@@ -1,5 +1,6 @@
 -----------------------------------------------------------------------------
 -----------------------------------------------------------------------------
--- (c) The University of Glasgow, 2004
+--
+-- (c) The University of Glasgow, 2004-2006
 --
 -- Lexer for concrete Cmm.  We try to stay close to the C-- spec, but there
 -- are a few minor differences:
 --
 -- Lexer for concrete Cmm.  We try to stay close to the C-- spec, but there
 -- are a few minor differences:
@@ -24,7 +25,7 @@ import UniqFM
 import StringBuffer
 import FastString
 import Ctype
 import StringBuffer
 import FastString
 import Ctype
-import Util            ( readRational )
+import Util
 --import TRACE
 }
 
 --import TRACE
 }
 
index 83444e5..80ad9ef 100644 (file)
@@ -1,8 +1,8 @@
 -----------------------------------------------------------------------------
 --
 -----------------------------------------------------------------------------
 --
--- CmmLint: checking the correctness of Cmm statements and expressions
+-- (c) The University of Glasgow 2004-2006
 --
 --
--- (c) The University of Glasgow 2004
+-- CmmLint: checking the correctness of Cmm statements and expressions
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -13,14 +13,14 @@ module CmmLint (
 #include "HsVersions.h"
 
 import Cmm
 #include "HsVersions.h"
 
 import Cmm
-import CLabel          ( pprCLabel )
+import CLabel
 import MachOp
 import Outputable
 import PprCmm
 import MachOp
 import Outputable
 import PprCmm
-import Unique          ( getUnique )
-import Constants       ( wORD_SIZE )
+import Unique
+import Constants
 
 
-import Monad           ( when )
+import Control.Monad
 
 -- -----------------------------------------------------------------------------
 -- Exported entry points:
 
 -- -----------------------------------------------------------------------------
 -- Exported entry points:
index a23a46f..f279b84 100644 (file)
@@ -15,22 +15,20 @@ module CmmOpt (
 #include "HsVersions.h"
 
 import Cmm
 #include "HsVersions.h"
 
 import Cmm
-import CmmUtils        ( hasNoGlobalRegs )
-import CLabel  ( entryLblToInfoLbl )
+import CmmUtils
+import CLabel
 import MachOp
 import MachOp
-import SMRep   ( tablesNextToCode )
+import SMRep
 
 import UniqFM
 
 import UniqFM
-import Unique  ( Unique )
-import Panic   ( panic )
+import Unique
 
 import Outputable
 
 
 import Outputable
 
-import Bits
-import Word
-import Int
-import GLAEXTS
-
+import Data.Bits
+import Data.Word
+import Data.Int
+import GHC.Exts
 
 -- -----------------------------------------------------------------------------
 -- The mini-inliner
 
 -- -----------------------------------------------------------------------------
 -- The mini-inliner
index a1cbbf5..05ec274 100644 (file)
@@ -1,6 +1,6 @@
 -----------------------------------------------------------------------------
 --
 -----------------------------------------------------------------------------
 --
--- (c) The University of Glasgow, 2004
+-- (c) The University of Glasgow, 2004-2006
 --
 -- Parser for concrete Cmm.
 --
 --
 -- Parser for concrete Cmm.
 --
@@ -16,37 +16,37 @@ import CgProf
 import CgTicky
 import CgInfoTbls
 import CgForeignCall
 import CgTicky
 import CgInfoTbls
 import CgForeignCall
-import CgTailCall      ( pushUnboxedTuple )
-import CgStackery      ( emitPushUpdateFrame )
-import ClosureInfo     ( C_SRT(..) )
-import CgCallConv      ( smallLiveness )
-import CgClosure       ( emitBlackHoleCode )
-import CostCentre      ( dontCareCCS )
+import CgTailCall
+import CgStackery
+import ClosureInfo
+import CgCallConv
+import CgClosure
+import CostCentre
 
 import Cmm
 import PprCmm
 
 import Cmm
 import PprCmm
-import CmmUtils                ( mkIntCLit )
+import CmmUtils
 import CmmLex
 import CLabel
 import MachOp
 import CmmLex
 import CLabel
 import MachOp
-import SMRep           ( fixedHdrSize, CgRep(..) )
+import SMRep
 import Lexer
 
 import Lexer
 
-import ForeignCall     ( CCallConv(..), Safety(..) )
-import Literal         ( mkMachInt )
+import ForeignCall
+import Literal
 import Unique
 import UniqFM
 import SrcLoc
 import Unique
 import UniqFM
 import SrcLoc
-import DynFlags                ( DynFlags, DynFlag(..) )
-import StaticFlags     ( opt_SccProfilingOn )
-import ErrUtils                ( printError, dumpIfSet_dyn, showPass )
-import StringBuffer    ( hGetStringBuffer )
+import DynFlags
+import StaticFlags
+import ErrUtils
+import StringBuffer
 import FastString
 import FastString
-import Panic           ( panic )
-import Constants       ( wORD_SIZE )
+import Panic
+import Constants
 import Outputable
 
 import Outputable
 
-import Monad           ( when )
+import Control.Monad   ( when )
 import Data.Char       ( ord )
 
 #include "HsVersions.h"
 import Data.Char       ( ord )
 
 #include "HsVersions.h"
index a04935b..0c5ab0f 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Cmm utilities.
 --
 --
 -- Cmm utilities.
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -22,7 +22,7 @@ module CmmUtils(
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import CLabel          ( CLabel )
+import CLabel
 import Cmm
 import MachOp
 import OrdList
 import Cmm
 import MachOp
 import OrdList
index a77a7b1..afe834a 100644 (file)
@@ -1,6 +1,6 @@
 -----------------------------------------------------------------------------
 --
 -----------------------------------------------------------------------------
 --
--- (c) The University of Glasgow 2002-2004
+-- (c) The University of Glasgow 2002-2006
 --
 -- Low-level machine operations, used in the Cmm datatype.
 --
 --
 -- Low-level machine operations, used in the Cmm datatype.
 --
index 5c60b8a..de5bf0a 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Pretty-printing of Cmm as C, suitable for feeding gcc
 --
 --
 -- Pretty-printing of Cmm as C, suitable for feeding gcc
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -30,23 +30,21 @@ import MachOp
 import ForeignCall
 
 -- Utils
 import ForeignCall
 
 -- Utils
-import DynFlags                ( DynFlags, DynFlag(..), dopt )
-import Unique           ( getUnique )
+import DynFlags
+import Unique
 import UniqSet
 import FiniteMap
 import UniqSet
 import FiniteMap
-import UniqFM          ( eltsUFM )
+import UniqFM
 import FastString
 import Outputable
 import Constants
 import FastString
 import Outputable
 import Constants
-import StaticFlags     ( opt_Unregisterised )
 
 -- The rest
 
 -- The rest
-import Data.List        ( intersperse, groupBy )
-import Data.Bits        ( shiftR )
-import Char             ( ord, chr )
-import IO               ( Handle )
-import DATA_BITS
-import Data.Word       ( Word8 )
+import Data.List
+import Data.Bits
+import Data.Char
+import System.IO
+import Data.Word
 
 #ifdef DEBUG
 import PprCmm          () -- instances only
 
 #ifdef DEBUG
 import PprCmm          () -- instances only
@@ -56,7 +54,7 @@ import PprCmm         () -- instances only
 #if __GLASGOW_HASKELL__ >= 504
 import Data.Array.ST
 #endif
 #if __GLASGOW_HASKELL__ >= 504
 import Data.Array.ST
 #endif
-import MONAD_ST
+import Control.Monad.ST
 
 -- --------------------------------------------------------------------------
 -- Top level
 
 -- --------------------------------------------------------------------------
 -- Top level
index 6e8367d..6321410 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Pretty-printing of Cmm as (a superset of) C--
 --
 --
 -- Pretty-printing of Cmm as (a superset of) C--
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -39,19 +39,19 @@ module PprCmm (
 #include "HsVersions.h"
 
 import Cmm
 #include "HsVersions.h"
 
 import Cmm
-import CmmUtils     ( isTrivialCmmExpr )
-import MachOp       ( MachOp(..), pprMachOp, MachRep(..), wordRep )
-import CLabel       ( pprCLabel, mkForeignLabel, entryLblToInfoLbl )
+import CmmUtils
+import MachOp
+import CLabel
 
 
-import ForeignCall  ( CCallConv(..) )
-import Unique       ( getUnique )
+import ForeignCall
+import Unique
 import Outputable
 import Outputable
-import FastString   ( mkFastString )
+import FastString
 
 
-import Data.List    ( intersperse, groupBy )
-import IO           ( Handle )
-import Maybe       ( isJust )
-import Data.Char    ( chr )
+import Data.List
+import System.IO
+import Data.Maybe
+import Data.Char
 
 pprCmms :: [Cmm] -> SDoc
 pprCmms cmms = pprCode CStyle (vcat (intersperse separator $ map ppr cmms))
 
 pprCmms :: [Cmm] -> SDoc
 pprCmms cmms = pprCode CStyle (vcat (intersperse separator $ map ppr cmms))
index c0b4909..93cf43f 100644 (file)
@@ -1,5 +1,5 @@
 --
 --
--- (c) The University of Glasgow 2003
+-- (c) The University of Glasgow 2003-2006
 -- 
 
 -- Functions for constructing bitmaps, which are used in various
 -- 
 
 -- Functions for constructing bitmaps, which are used in various
@@ -17,7 +17,8 @@ module Bitmap (
 
 import SMRep
 import Constants
 
 import SMRep
 import Constants
-import DATA_BITS
+
+import Data.Bits
 
 {-|
 A bitmap represented by a sequence of 'StgWord's on the /target/
 
 {-|
 A bitmap represented by a sequence of 'StgWord's on the /target/
index 96735ef..d7f2579 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[CgBindery]{Utility functions related to doing @CgBindings@}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[CgBindery]{Utility functions related to doing @CgBindings@}
@@ -31,26 +32,24 @@ module CgBindery (
 #include "HsVersions.h"
 
 import CgMonad
 #include "HsVersions.h"
 
 import CgMonad
-import CgHeapery       ( getHpRelOffset )
-import CgStackery      ( freeStackSlots, getSpRelOffset )
-import CgUtils         ( cgLit, cmmOffsetW )
-import CLabel          ( mkClosureLabel, pprCLabel )
-import ClosureInfo     ( mkLFImported, mkLFArgument, LambdaFormInfo )
+import CgHeapery
+import CgStackery
+import CgUtils
+import CLabel
+import ClosureInfo
 
 import Cmm
 import PprCmm          ( {- instance Outputable -} )
 
 import Cmm
 import PprCmm          ( {- instance Outputable -} )
-import SMRep           ( CgRep(..), WordOff, isFollowableArg, 
-                         isVoidArg, cgRepSizeW, argMachRep, 
-                         idCgRep, typeCgRep )
-import Id              ( Id, idName )
+import SMRep
+import Id
 import VarEnv
 import VarEnv
-import VarSet          ( varSetElems )
-import Literal         ( literalType )
-import Maybes          ( catMaybes )
-import Name            ( isExternalName )
-import StgSyn          ( StgArg, StgLiveVars, GenStgArg(..), isStgTypeArg )
-import Unique           ( Uniquable(..) )
-import UniqSet         ( elementOfUniqSet )
+import VarSet
+import Literal
+import Maybes
+import Name
+import StgSyn
+import Unique
+import UniqSet
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index f463255..b48b7d5 100644 (file)
@@ -1,12 +1,12 @@
 -----------------------------------------------------------------------------
 --
 -----------------------------------------------------------------------------
 --
---             CgCallConv
+-- (c) The University of Glasgow 2004-2006
+--
+-- CgCallConv
 --
 -- The datatypes and functions here encapsulate the 
 -- calling and return conventions used by the code generator.
 --
 --
 -- The datatypes and functions here encapsulate the 
 -- calling and return conventions used by the code generator.
 --
--- (c) The University of Glasgow 2004
---
 -----------------------------------------------------------------------------
 
 
 -----------------------------------------------------------------------------
 
 
@@ -33,36 +33,29 @@ module CgCallConv (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import CgUtils         ( emitRODataLits, mkWordCLit )
+import CgUtils
 import CgMonad
 import CgMonad
-
-import Constants       ( mAX_FAMILY_SIZE_FOR_VEC_RETURNS,
-                         mAX_Vanilla_REG, mAX_Float_REG,
-                         mAX_Double_REG, mAX_Long_REG,
-                         mAX_Real_Vanilla_REG, mAX_Real_Float_REG,
-                         mAX_Real_Double_REG, mAX_Real_Long_REG,
-                         bITMAP_BITS_SHIFT
-                       )
-
-import ClosureInfo     ( ArgDescr(..), Liveness(..) )
-import CgStackery      ( getSpRelOffset )
 import SMRep
 import SMRep
-import MachOp          ( wordRep )
-import Cmm             ( CmmExpr(..), GlobalReg(..), CmmLit(..), CmmReg(..), node )
-import CmmUtils                ( mkLblExpr )
+
+import MachOp
+import Cmm
 import CLabel
 import CLabel
-import Maybes          ( mapCatMaybes )
-import Id              ( Id )
-import Name            ( Name )
-import TyCon           ( TyCon, tyConFamilySize )
-import Bitmap          ( Bitmap, mAX_SMALL_BITMAP_SIZE, 
-                         mkBitmap, intsToReverseBitmap )
-import Util            ( isn'tIn, sortLe )
-import StaticFlags     ( opt_Unregisterised )
-import FastString      ( LitString )
+
+import Constants
+import ClosureInfo
+import CgStackery
+import CmmUtils
+import Maybes
+import Id
+import Name
+import TyCon
+import Bitmap
+import Util
+import StaticFlags
+import FastString
 import Outputable
 import Outputable
-import DATA_BITS
 
 
+import Data.Bits
 
 -------------------------------------------------------------------------
 --
 
 -------------------------------------------------------------------------
 --
index 7b4861a..23310dd 100644 (file)
@@ -1,13 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgCase.lhs,v 1.75 2005/06/21 10:44:41 simonmar Exp $
-%
-%********************************************************
-%*                                                     *
-\section[CgCase]{Converting @StgCase@ expressions}
-%*                                                     *
-%********************************************************
 
 \begin{code}
 module CgCase (        cgCase, saveVolatileVarsAndRegs, 
 
 \begin{code}
 module CgCase (        cgCase, saveVolatileVarsAndRegs, 
@@ -19,43 +13,33 @@ module CgCase (     cgCase, saveVolatileVarsAndRegs,
 import {-# SOURCE #-} CgExpr  ( cgExpr )
 
 import CgMonad
 import {-# SOURCE #-} CgExpr  ( cgExpr )
 
 import CgMonad
-import StgSyn
-import CgBindery       ( getArgAmodes,
-                         bindNewToReg, bindNewToTemp,
-                         getCgIdInfo, getArgAmode,
-                         rebindToStack, getCAddrModeIfVolatile,
-                         nukeDeadBindings, idInfoToAmode
-                       )
-import CgCon           ( bindConArgs, bindUnboxedTupleComponents )
-import CgHeapery       ( altHeapCheck, unbxTupleHeapCheck )
-import CgCallConv      ( dataReturnConvPrim, ctrlReturnConvAlg,
-                         CtrlReturnConvention(..)
-                       )
-import CgStackery      ( allocPrimStack, allocStackTop, getSpRelOffset,
-                         deAllocStackTop, freeStackSlots
-                       )
-import CgTailCall      ( performTailCall )
-import CgPrimOp                ( cgPrimOp )
-import CgForeignCall   ( cgForeignCall )
-import CgUtils         ( newTemp, cgLit, emitLitSwitch, emitSwitch,
-                         tagToClosure )
-import CgProf          ( curCCS, curCCSAddr )
-import CgInfoTbls      ( emitDirectReturnTarget, emitAlgReturnTarget, 
-                         dataConTagZ )
-import SMRep           ( CgRep(..), retAddrSizeW, nonVoidArg, isVoidArg,
-                         idCgRep, tyConCgRep, typeHint )
-import CmmUtils                ( CmmStmts, noStmts, oneStmt, plusStmts )
+import CgBindery
+import CgCon
+import CgHeapery
+import CgCallConv
+import CgStackery
+import CgTailCall
+import CgPrimOp
+import CgForeignCall
+import CgUtils
+import CgProf
+import CgInfoTbls
+
+import ClosureInfo
+import SMRep
+import CmmUtils
 import Cmm
 import Cmm
-import MachOp          ( wordRep )
-import ClosureInfo     ( mkLFArgument )
-import StaticFlags     ( opt_SccProfilingOn )
-import Id              ( Id, idName, isDeadBinder, idType )
-import ForeignCall     ( ForeignCall(..), CCallSpec(..), playSafe )
-import VarSet          ( varSetElems )
-import CoreSyn         ( AltCon(..) )
-import PrimOp          ( PrimOp(..), primOpOutOfLine )
-import TyCon           ( isEnumerationTyCon, tyConFamilySize )
-import Util            ( isSingleton )
+import MachOp
+
+import StgSyn
+import StaticFlags
+import Id
+import ForeignCall
+import VarSet
+import CoreSyn
+import PrimOp
+import TyCon
+import Util
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 1a2cbc5..99290d2 100644 (file)
@@ -1,8 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgClosure.lhs,v 1.72 2005/05/18 12:06:51 simonmar Exp $
-%
 \section[CgClosure]{Code generation for closures}
 
 This module provides the support code for @StgToAbstractC@ to deal
 \section[CgClosure]{Code generation for closures}
 
 This module provides the support code for @StgToAbstractC@ to deal
@@ -23,34 +22,29 @@ import {-# SOURCE #-} CgExpr ( cgExpr )
 import CgMonad
 import CgBindery
 import CgHeapery
 import CgMonad
 import CgBindery
 import CgHeapery
-import CgStackery      ( mkVirtStkOffsets, pushUpdateFrame, getVirtSp,
-                         setRealAndVirtualSp )
-import CgProf          ( chooseDynCostCentres, ldvEnter, enterCostCentre,
-                         costCentreFrom )
+import CgStackery
+import CgProf
 import CgTicky
 import CgTicky
-import CgParallel      ( granYield, granFetchAndReschedule )
-import CgInfoTbls      ( emitClosureCodeAndInfoTable, getSRTInfo )
-import CgCallConv      ( assignCallRegs, mkArgDescr )
-import CgUtils         ( emitDataLits, addIdReps, cmmRegOffW, 
-                         emitRtsCallWithVols )
-import ClosureInfo     -- lots and lots of stuff
-import SMRep           ( CgRep, cgRepSizeW, argMachRep, fixedHdrSize, WordOff,
-                         idCgRep )
-import MachOp          ( MachHint(..) )
+import CgParallel
+import CgInfoTbls
+import CgCallConv
+import CgUtils
+import ClosureInfo
+import SMRep
+import MachOp
 import Cmm
 import Cmm
-import CmmUtils                ( CmmStmts, mkStmts, oneStmt, plusStmts, noStmts,
-                         mkLblExpr )
+import CmmUtils
 import CLabel
 import StgSyn
 import CLabel
 import StgSyn
-import StaticFlags     ( opt_DoTickyProfiling )
+import StaticFlags
 import CostCentre      
 import CostCentre      
-import Id              ( Id, idName, idType )
-import Name            ( Name, isExternalName )
-import Module          ( Module, pprModule )
-import ListSetOps      ( minusList )
-import Util            ( isIn, mapAccumL, zipWithEqual )
-import BasicTypes      ( TopLevelFlag(..) )
-import Constants       ( oFFSET_StgInd_indirectee, wORD_SIZE )
+import Id
+import Name
+import Module
+import ListSetOps
+import Util
+import BasicTypes
+import Constants
 import Outputable
 import FastString
 \end{code}
 import Outputable
 import FastString
 \end{code}
@@ -79,7 +73,7 @@ cgTopRhsClosure id ccs binder_info srt upd_flag args body = do
     let name = idName id
   ; lf_info  <- mkClosureLFInfo id TopLevel [] upd_flag args
   ; srt_info <- getSRTInfo name srt
     let name = idName id
   ; lf_info  <- mkClosureLFInfo id TopLevel [] upd_flag args
   ; srt_info <- getSRTInfo name srt
-  ; mod_name <- moduleName
+  ; mod_name <- getModuleName
   ; let descr         = closureDescription mod_name name
        closure_info  = mkClosureInfo True id lf_info 0 0 srt_info descr
        closure_label = mkLocalClosureLabel name
   ; let descr         = closureDescription mod_name name
        closure_info  = mkClosureInfo True id lf_info 0 0 srt_info descr
        closure_label = mkLocalClosureLabel name
@@ -118,7 +112,7 @@ cgStdRhsClosure bndr cc bndr_info fvs args body lf_info payload
   = do -- AHA!  A STANDARD-FORM THUNK
   {    -- LAY OUT THE OBJECT
     amodes <- getArgAmodes payload
   = do -- AHA!  A STANDARD-FORM THUNK
   {    -- LAY OUT THE OBJECT
     amodes <- getArgAmodes payload
-  ; mod_name <- moduleName
+  ; mod_name <- getModuleName
   ; let (tot_wds, ptr_wds, amodes_w_offsets) 
            = mkVirtHeapOffsets (isLFThunk lf_info) amodes
 
   ; let (tot_wds, ptr_wds, amodes_w_offsets) 
            = mkVirtHeapOffsets (isLFThunk lf_info) amodes
 
@@ -169,7 +163,7 @@ cgRhsClosure bndr cc bndr_info srt fvs upd_flag args body = do
   ; lf_info <- mkClosureLFInfo bndr NotTopLevel fvs upd_flag args
   ; fv_infos <- mapFCs getCgIdInfo reduced_fvs
   ; srt_info <- getSRTInfo name srt
   ; lf_info <- mkClosureLFInfo bndr NotTopLevel fvs upd_flag args
   ; fv_infos <- mapFCs getCgIdInfo reduced_fvs
   ; srt_info <- getSRTInfo name srt
-  ; mod_name <- moduleName
+  ; mod_name <- getModuleName
   ; let        bind_details :: [(CgIdInfo, VirtualHpOffset)]
        (tot_wds, ptr_wds, bind_details) 
           = mkVirtHeapOffsets (isLFThunk lf_info) (map add_rep fv_infos)
   ; let        bind_details :: [(CgIdInfo, VirtualHpOffset)]
        (tot_wds, ptr_wds, bind_details) 
           = mkVirtHeapOffsets (isLFThunk lf_info) (map add_rep fv_infos)
index 115439a..6e85c2c 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP Project, Glasgow University, 1992-1998
 %
 \section[CgCon]{Code generation for constructors}
 % (c) The GRASP Project, Glasgow University, 1992-1998
 %
 \section[CgCon]{Code generation for constructors}
@@ -20,40 +21,30 @@ module CgCon (
 import CgMonad
 import StgSyn
 
 import CgMonad
 import StgSyn
 
-import CgBindery       ( getArgAmodes, bindNewToNode,
-                         bindArgsToRegs, idInfoToAmode, stableIdInfo,
-                         heapIdInfo, CgIdInfo, bindArgsToStack
-                       )
-import CgStackery      ( mkVirtStkOffsets, freeStackSlots,
-                         getRealSp, getVirtSp, setRealAndVirtualSp )
-import CgUtils         ( addIdReps, cmmLabelOffW, emitRODataLits, emitDataLits )
-import CgCallConv      ( assignReturnRegs )
-import CgHeapery       ( allocDynClosure, layOutDynConstr, 
-                         layOutStaticConstr, mkStaticClosureFields )
-import CgTailCall      ( performReturn, emitKnownConReturnCode, returnUnboxedTuple )
-import CgProf          ( mkCCostCentreStack, ldvEnter, curCCS )
+import CgBindery
+import CgStackery
+import CgUtils
+import CgCallConv
+import CgHeapery
+import CgTailCall
+import CgProf
 import CgTicky
 import CgTicky
-import CgInfoTbls      ( emitClosureCodeAndInfoTable, dataConTagZ )
+import CgInfoTbls
 import CLabel
 import CLabel
-import ClosureInfo     ( mkConLFInfo, mkLFArgument )
-import CmmUtils                ( mkLblExpr )
+import ClosureInfo
+import CmmUtils
 import Cmm
 import Cmm
-import SMRep           ( WordOff, CgRep, separateByPtrFollowness,
-                         fixedHdrSize, typeCgRep )
-import CostCentre      ( currentOrSubsumedCCS, dontCareCCS, CostCentreStack,
-                         currentCCS )
-import Constants       ( mIN_INTLIKE, mAX_INTLIKE, mIN_CHARLIKE, mAX_CHARLIKE )
-import TyCon           ( TyCon, tyConDataCons, isEnumerationTyCon, tyConName )
-import DataCon         ( DataCon, dataConRepArgTys, isNullaryRepDataCon,
-                         isUnboxedTupleCon, dataConWorkId, 
-                         dataConName, dataConRepArity
-                       )
-import Id              ( Id, idName, isDeadBinder )
-import Type            ( Type )
-import PrelInfo                ( maybeCharLikeCon, maybeIntLikeCon )
+import SMRep
+import CostCentre
+import Constants
+import TyCon
+import DataCon
+import Id
+import Type
+import PrelInfo
 import Outputable
 import Outputable
-import Util            ( lengthIs )
-import ListSetOps      ( assocMaybe )
+import Util
+import ListSetOps
 \end{code}
 
 
 \end{code}
 
 
index 551a40b..fff2b3d 100644 (file)
@@ -1,56 +1,45 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgExpr.lhs,v 1.62 2005/06/21 10:44:41 simonmar Exp $
-%
-%********************************************************
-%*                                                     *
-\section[CgExpr]{Converting @StgExpr@s}
-%*                                                     *
-%********************************************************
 
 \begin{code}
 module CgExpr ( cgExpr ) where
 
 #include "HsVersions.h"
 
 
 \begin{code}
 module CgExpr ( cgExpr ) where
 
 #include "HsVersions.h"
 
-import Constants       ( mAX_SPEC_SELECTEE_SIZE, mAX_SPEC_AP_SIZE )
+import Constants
 import StgSyn
 import CgMonad
 
 import StgSyn
 import CgMonad
 
-import SMRep           ( fixedHdrSize, isFollowableArg, CgRep(..), argMachRep,
-                         nonVoidArg, idCgRep, typeCgRep, typeHint,
-                         primRepToCgRep )
-import CoreSyn         ( AltCon(..) )
-import CgProf          ( emitSetCCC )
-import CgHeapery       ( layOutDynConstr )
-import CgBindery       ( getArgAmodes, getArgAmode, CgIdInfo, 
-                         nukeDeadBindings, addBindC, addBindsC )
-import CgCase          ( cgCase, saveVolatileVarsAndRegs )
-import CgClosure       ( cgRhsClosure, cgStdRhsClosure )
-import CgCon           ( buildDynCon, cgReturnDataCon )
-import CgLetNoEscape   ( cgLetNoEscapeClosure )
-import CgCallConv      ( dataReturnConvPrim )
+import SMRep
+import CoreSyn
+import CgProf
+import CgHeapery
+import CgBindery
+import CgCase
+import CgClosure
+import CgCon
+import CgLetNoEscape
+import CgCallConv
 import CgTailCall
 import CgTailCall
-import CgInfoTbls      ( emitDirectReturnInstr )
-import CgForeignCall   ( emitForeignCall, shimForeignCallArg )
-import CgPrimOp                ( cgPrimOp )
-import CgUtils         ( addIdReps, newTemp, assignTemp, cgLit, tagToClosure )
-import ClosureInfo     ( mkSelectorLFInfo, mkApLFInfo )
-import Cmm             ( CmmExpr(..), CmmStmt(..), CmmReg, nodeReg )
-import MachOp          ( wordRep, MachHint )
+import CgInfoTbls
+import CgForeignCall
+import CgPrimOp
+import CgUtils
+import ClosureInfo
+import Cmm
+import MachOp
 import VarSet
 import VarSet
-import Literal         ( literalType )
-import PrimOp          ( primOpOutOfLine, getPrimOpResultInfo, 
-                         PrimOp(..), PrimOpResultInfo(..) )
-import Id              ( Id )
-import TyCon           ( isUnboxedTupleTyCon, isEnumerationTyCon )
-import Type            ( Type, tyConAppArgs, tyConAppTyCon, repType,
-                         PrimRep(VoidRep) )
-import Maybes          ( maybeToBool )
-import ListSetOps      ( assocMaybe )
-import BasicTypes      ( RecFlag(..) )
-import Util             ( lengthIs )
+import Literal
+import PrimOp
+import Id
+import TyCon
+import Type
+import Maybes
+import ListSetOps
+import BasicTypes
+import Util
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 822a043..da52bd0 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Code generation for foreign calls.
 --
 --
 -- Code generation for foreign calls.
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -19,24 +19,24 @@ module CgForeignCall (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import StgSyn          ( StgLiveVars, StgArg, stgArgType )
-import CgProf          ( curCCS, curCCSAddr )
-import CgBindery       ( getVolatileRegs, getArgAmodes )
+import StgSyn
+import CgProf
+import CgBindery
 import CgMonad
 import CgMonad
-import CgUtils         ( cmmOffsetW, cmmOffsetB, newTemp )
-import Type            ( tyConAppTyCon, repType )
+import CgUtils
+import Type
 import TysPrim
 import TysPrim
-import CLabel          ( mkForeignLabel, mkRtsCodeLabel )
+import CLabel
 import Cmm
 import CmmUtils
 import MachOp
 import SMRep
 import ForeignCall
 import Constants
 import Cmm
 import CmmUtils
 import MachOp
 import SMRep
 import ForeignCall
 import Constants
-import StaticFlags     ( opt_SccProfilingOn )
+import StaticFlags
 import Outputable
 
 import Outputable
 
-import Monad           ( when )
+import Control.Monad
 
 -- -----------------------------------------------------------------------------
 -- Code generation for Foreign Calls
 
 -- -----------------------------------------------------------------------------
 -- Code generation for Foreign Calls
index ae6c892..4a12849 100644 (file)
@@ -1,8 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgHeapery.lhs,v 1.47 2005/06/21 10:44:41 simonmar Exp $
-%
 \section[CgHeapery]{Heap management functions}
 
 \begin{code}
 \section[CgHeapery]{Heap management functions}
 
 \begin{code}
@@ -23,39 +22,29 @@ module CgHeapery (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import StgSyn          ( AltType(..) )
-import CLabel          ( CLabel, mkRtsCodeLabel )
-import CgUtils         ( mkWordCLit, cmmRegOffW, cmmOffsetW,
-                         cmmOffsetExprB )
+import StgSyn
+import CLabel
+import CgUtils
 import CgMonad
 import CgMonad
-import CgProf          ( staticProfHdr, profDynAlloc, dynProfHdr )
-import CgTicky         ( staticTickyHdr, tickyDynAlloc, tickyAllocHeap )
-import CgParallel      ( staticGranHdr, staticParHdr, doGranAllocate )
-import CgStackery      ( getFinalStackHW, getRealSp )
-import CgCallConv      ( mkRegLiveness )
-import ClosureInfo     ( closureSize, staticClosureNeedsLink, 
-                         mkConInfo,  closureNeedsUpdSpace,
-                         infoTableLabelFromCI, closureLabelFromCI,
-                         nodeMustPointToIt, closureLFInfo,                     
-                         ClosureInfo )
-import SMRep           ( CgRep(..), cgRepSizeW, separateByPtrFollowness,
-                         WordOff, fixedHdrSize, thunkHdrSize,
-                         isVoidArg, primRepToCgRep )
-
-import Cmm             ( CmmLit(..), CmmStmt(..), CmmExpr(..), GlobalReg(..),
-                         CmmReg(..), hpReg, nodeReg, spReg )
-import MachOp          ( mo_wordULt, mo_wordUGt, mo_wordSub )
-import CmmUtils                ( mkIntCLit, CmmStmts, noStmts, oneStmt, plusStmts,
-                         mkStmts )
-import Id              ( Id )
-import DataCon         ( DataCon )
-import TyCon           ( tyConPrimRep )
-import CostCentre      ( CostCentreStack )
-import Util            ( mapAccumL, filterOut )
-import Constants       ( wORD_SIZE )
-import PackageConfig   ( PackageId )
+import CgProf
+import CgTicky
+import CgParallel
+import CgStackery
+import CgCallConv
+import ClosureInfo
+import SMRep
+
+import Cmm
+import MachOp
+import CmmUtils
+import Id
+import DataCon
+import TyCon
+import CostCentre
+import Util
+import Constants
+import PackageConfig
 import Outputable
 import Outputable
-
 \end{code}
 
 
 \end{code}
 
 
index 5a40a3d..f233cbb 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Building info tables.
 --
 --
 -- Building info tables.
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -28,42 +28,27 @@ module CgInfoTbls (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import ClosureInfo     ( ClosureInfo, closureTypeDescr, closureName,
-                         infoTableLabelFromCI, Liveness,
-                         closureValDescr, closureSRT, closureSMRep,
-                         closurePtrsSize, closureNonHdrSize, closureFunInfo,
-                         C_SRT(..), needsSRT, isConstrClosure_maybe,
-                         ArgDescr(..) )
-import SMRep           ( StgHalfWord, hALF_WORD_SIZE_IN_BITS, hALF_WORD_SIZE,
-                         WordOff, ByteOff,
-                         smRepClosureTypeInt, tablesNextToCode,
-                         rET_BIG, rET_SMALL, rET_VEC_BIG, rET_VEC_SMALL )
-import CgBindery       ( getLiveStackSlots )
-import CgCallConv      ( isBigLiveness, mkLivenessCLit, buildContLiveness,
-                         argDescrType, getSequelAmode,
-                         CtrlReturnConvention(..) )
-import CgUtils         ( mkStringCLit, packHalfWordsCLit, mkWordCLit, 
-                         cmmOffsetB, cmmOffsetExprW, cmmLabelOffW, cmmOffsetW,
-                         emitDataLits, emitRODataLits, emitSwitch, cmmNegate,
-                         newTemp )
+import ClosureInfo
+import SMRep
+import CgBindery
+import CgCallConv
+import CgUtils
 import CgMonad
 
 import CgMonad
 
-import CmmUtils                ( mkIntCLit, zeroCLit )
-import Cmm             ( CmmStmt(..), CmmExpr(..), CmmLit(..), LocalReg,
-                         CmmBasicBlock, nodeReg )
+import CmmUtils
+import Cmm
 import MachOp
 import CLabel
 import MachOp
 import CLabel
-import StgSyn          ( SRT(..) )
-import Name            ( Name )
-import DataCon         ( DataCon, dataConTag, fIRST_TAG )
-import Unique          ( Uniquable(..) )
-import DynFlags                ( DynFlags(..), HscTarget(..) )
-import StaticFlags     ( opt_SccProfilingOn )
-import ListSetOps      ( assocDefault )
-import Maybes          ( isJust )
-import Constants       ( wORD_SIZE, sIZEOF_StgFunInfoExtraRev )
-import Outputable
-
+import StgSyn
+import Name
+import DataCon
+import Unique
+import DynFlags
+import StaticFlags
+
+import ListSetOps
+import Maybes
+import Constants
 
 -------------------------------------------------------------------------
 --
 
 -------------------------------------------------------------------------
 --
index ffec570..dd25f55 100644 (file)
@@ -1,8 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
-% $Id: CgLetNoEscape.lhs,v 1.26 2004/09/30 10:35:47 simonpj Exp $
-%
 %********************************************************
 %*                                                     *
 \section[CgLetNoEscape]{Handling ``let-no-escapes''}
 %********************************************************
 %*                                                     *
 \section[CgLetNoEscape]{Handling ``let-no-escapes''}
@@ -19,21 +18,21 @@ import {-# SOURCE #-} CgExpr ( cgExpr )
 import StgSyn
 import CgMonad
 
 import StgSyn
 import CgMonad
 
-import CgBindery       ( CgIdInfo, letNoEscapeIdInfo, nukeDeadBindings )
-import CgCase          ( restoreCurrentCostCentre )
-import CgCon           ( bindUnboxedTupleComponents )
-import CgHeapery       ( unbxTupleHeapCheck )
-import CgInfoTbls      ( emitDirectReturnTarget )
-import CgStackery      ( allocStackTop, deAllocStackTop, getSpRelOffset )
-import Cmm             ( CmmStmt(..) )
-import CmmUtils                ( mkLblExpr, oneStmt )
-import CLabel          ( mkReturnInfoLabel )
-import ClosureInfo     ( mkLFLetNoEscape )
-import CostCentre       ( CostCentreStack )
-import Id              ( Id, idName )
-import Var             ( idUnique )
-import SMRep           ( retAddrSizeW )
-import BasicTypes      ( RecFlag(..) )
+import CgBindery
+import CgCase
+import CgCon
+import CgHeapery
+import CgInfoTbls
+import CgStackery
+import Cmm
+import CmmUtils
+import CLabel
+import ClosureInfo
+import CostCentre
+import Id
+import Var
+import SMRep
+import BasicTypes
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index 1866df4..0757bbf 100644 (file)
@@ -1,8 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgMonad.lhs,v 1.45 2005/06/21 10:44:41 simonmar Exp $
-%
 \section[CgMonad]{The code generation monad}
 
 See the beginning of the top-level @CodeGen@ module, to see how this
 \section[CgMonad]{The code generation monad}
 
 See the beginning of the top-level @CodeGen@ module, to see how this
@@ -42,7 +41,7 @@ module CgMonad (
        getHpUsage,  setHpUsage,
        heapHWM,
 
        getHpUsage,  setHpUsage,
        heapHWM,
 
-       moduleName,
+       getModuleName,
 
        Sequel(..), -- ToDo: unabstract?
 
 
        Sequel(..), -- ToDo: unabstract?
 
@@ -61,23 +60,23 @@ module CgMonad (
 
 import {-# SOURCE #-} CgBindery ( CgBindings, nukeVolatileBinds )
 
 
 import {-# SOURCE #-} CgBindery ( CgBindings, nukeVolatileBinds )
 
-import DynFlags                ( DynFlags(..) )
-import PackageConfig   ( PackageId )
+import DynFlags
+import PackageConfig
 import Cmm
 import Cmm
-import CmmUtils                ( CmmStmts, isNopStmt )
+import CmmUtils
 import CLabel
 import CLabel
-import SMRep           ( WordOff )
-import Module          ( Module )
-import Id              ( Id )
+import SMRep
+import Module
+import Id
 import VarEnv
 import OrdList
 import VarEnv
 import OrdList
-import Unique          ( Unique )
-import Util            ( mapAccumL )
-import UniqSupply      ( UniqSupply, mkSplitUniqSupply, splitUniqSupply, uniqFromSupply )
+import Unique
+import Util
+import UniqSupply
 import FastString
 import Outputable
 
 import FastString
 import Outputable
 
-import Control.Monad   ( liftM )
+import Control.Monad
 
 infixr 9 `thenC`       -- Right-associative!
 infixr 9 `thenFC`
 
 infixr 9 `thenC`       -- Right-associative!
 infixr 9 `thenFC`
@@ -804,8 +803,8 @@ consCgStmt stmt stmts = CgStmt stmt `consOL` stmts
 -- ----------------------------------------------------------------------------
 -- Get the current module name
 
 -- ----------------------------------------------------------------------------
 -- Get the current module name
 
-moduleName :: FCode Module
-moduleName = do { info <- getInfoDown; return (cgd_mod info) }
+getModuleName :: FCode Module
+getModuleName = do { info <- getInfoDown; return (cgd_mod info) }
 
 -- ----------------------------------------------------------------------------
 -- Get/set the end-of-block info
 
 -- ----------------------------------------------------------------------------
 -- Get/set the end-of-block info
index b826a33..8cd5067 100644 (file)
@@ -1,6 +1,12 @@
+-----------------------------------------------------------------------------
+--
+-- (c) The University of Glasgow -2006
+--
 -- Code generation relaed to GpH
 --     (a) parallel
 --     (b) GranSim
 -- Code generation relaed to GpH
 --     (a) parallel
 --     (b) GranSim
+--
+-----------------------------------------------------------------------------
 
 module CgParallel(
        staticGranHdr,staticParHdr,
 
 module CgParallel(
        staticGranHdr,staticParHdr,
@@ -9,10 +15,10 @@ module CgParallel(
   ) where
 
 import CgMonad
   ) where
 
 import CgMonad
-import CgCallConv      ( mkRegLiveness )
-import Id              ( Id )
-import Cmm             ( CmmLit, GlobalReg(..), node, CmmExpr )
-import StaticFlags     ( opt_GranMacros )
+import CgCallConv
+import Id
+import Cmm
+import StaticFlags
 import Outputable
 
 staticParHdr :: [CmmLit]
 import Outputable
 
 staticParHdr :: [CmmLit]
index bc7c914..3993f19 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Code generation for PrimOps.
 --
 --
 -- Code generation for PrimOps.
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -12,24 +12,23 @@ module CgPrimOp (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import ForeignCall     ( CCallConv(CCallConv) )
-import StgSyn          ( StgLiveVars, StgArg )
-import CgForeignCall   ( emitForeignCall' )
-import CgBindery       ( getVolatileRegs, getArgAmodes )
+import ForeignCall
+import StgSyn
+import CgForeignCall
+import CgBindery
 import CgMonad
 import CgMonad
-import CgInfoTbls      ( getConstrTag )
-import CgUtils         ( cmmOffsetW, cmmOffsetB, cmmLoadIndexW )
+import CgInfoTbls
+import CgUtils
 import ForeignCall
 import Cmm
 import ForeignCall
 import Cmm
-import CLabel          ( mkMAP_FROZEN_infoLabel, mkMAP_DIRTY_infoLabel,
-                         mkDirty_MUT_VAR_Label, mkRtsCodeLabel )
+import CLabel
 import CmmUtils
 import MachOp
 import SMRep
 import CmmUtils
 import MachOp
 import SMRep
-import PrimOp          ( PrimOp(..) )
-import SMRep           ( tablesNextToCode )
-import Constants       ( wORD_SIZE, wORD_SIZE_IN_BITS )
-import StaticFlags     ( opt_Parallel )
+import PrimOp
+import SMRep
+import Constants
+import StaticFlags
 import Outputable
 
 -- ---------------------------------------------------------------------------
 import Outputable
 
 -- ---------------------------------------------------------------------------
index daff2f6..bc5473a 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Code generation for profiling
 --
 --
 -- Code generation for profiling
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -32,30 +32,28 @@ module CgProf (
 #include "../includes/DerivedConstants.h"
        -- For REP_xxx constants, which are MachReps
 
 #include "../includes/DerivedConstants.h"
        -- For REP_xxx constants, which are MachReps
 
-import ClosureInfo     ( ClosureInfo, closureSize,
-                         closureName, isToplevClosure, closureReEntrant, )
+import ClosureInfo
 import CgUtils
 import CgMonad
 import CgUtils
 import CgMonad
-import SMRep           ( StgWord, profHdrSize )
+import SMRep
 
 import Cmm
 import MachOp
 
 import Cmm
 import MachOp
-import CmmUtils                ( zeroCLit, mkIntCLit, mkLblExpr )
-import CLabel          ( mkCCLabel, mkCCSLabel, mkRtsDataLabel )
+import CmmUtils
+import CLabel
 
 
-import Module          ( moduleNameString )
-import qualified Module ( moduleName ) -- clashes with CgMonad.moduleName
-import Id              ( Id )
+import Id
+import qualified Module
 import CostCentre
 import CostCentre
-import StgSyn          ( GenStgExpr(..), StgExpr )
-import StaticFlags     ( opt_SccProfilingOn )
-import FastString      ( FastString )
+import StgSyn
+import StaticFlags
+import FastString
 import Constants       -- Lots of field offsets
 import Outputable
 
 import Constants       -- Lots of field offsets
 import Outputable
 
-import Maybe
-import Char            ( ord )
-import Monad           ( when )
+import Data.Maybe
+import Data.Char
+import Control.Monad
 
 -----------------------------------------------------------------------------
 --
 
 -----------------------------------------------------------------------------
 --
@@ -293,7 +291,8 @@ emitCostCentreDecl
    -> Code
 emitCostCentreDecl cc = do 
   { label <- mkStringCLit (costCentreUserName cc)
    -> Code
 emitCostCentreDecl cc = do 
   { label <- mkStringCLit (costCentreUserName cc)
-  ; modl  <- mkStringCLit (moduleNameString (Module.moduleName (cc_mod cc)))
+  ; modl  <- mkStringCLit (Module.moduleNameString 
+                                (Module.moduleName (cc_mod cc)))
                 -- All cost centres will be in the main package, since we
                 -- don't normally use -auto-all or add SCCs to other packages.
                 -- Hence don't emit the package name in the module here.
                 -- All cost centres will be in the main package, since we
                 -- don't normally use -auto-all or add SCCs to other packages.
                 -- Hence don't emit the package name in the module here.
index 7cb310d..7a510cf 100644 (file)
@@ -1,8 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgStackery.lhs,v 1.27 2004/09/30 10:35:49 simonpj Exp $
-%
 \section[CgStackery]{Stack management functions}
 
 Stack-twiddling operations, which are pretty low-down and grimy.
 \section[CgStackery]{Stack management functions}
 
 Stack-twiddling operations, which are pretty low-down and grimy.
@@ -24,16 +23,16 @@ module CgStackery (
 #include "HsVersions.h"
 
 import CgMonad
 #include "HsVersions.h"
 
 import CgMonad
-import CgUtils         ( cmmOffsetB, cmmRegOffW )
-import CgProf          ( initUpdFrameProf )
+import CgUtils
+import CgProf
 import SMRep
 import Cmm
 import SMRep
 import Cmm
-import CmmUtils                ( CmmStmts, mkLblExpr )
-import CLabel          ( mkUpdInfoLabel )
+import CmmUtils
+import CLabel
 import Constants
 import Constants
-import Util            ( sortLe )
-import FastString      ( LitString )
-import OrdList         ( toOL )
+import Util
+import FastString
+import OrdList
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 56614a8..c65ec1c 100644 (file)
@@ -1,13 +1,8 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-% $Id: CgTailCall.lhs,v 1.43 2005/06/21 10:44:41 simonmar Exp $
-%
-%********************************************************
-%*                                                     *
-\section[CgTailCall]{Tail calls: converting @StgApps@}
-%*                                                     *
-%********************************************************
+% Code generation for tail calls.
 
 \begin{code}
 module CgTailCall (
 
 \begin{code}
 module CgTailCall (
@@ -24,31 +19,27 @@ module CgTailCall (
 #include "HsVersions.h"
 
 import CgMonad
 #include "HsVersions.h"
 
 import CgMonad
-import CgBindery       ( getArgAmodes, getCgIdInfo, CgIdInfo, maybeLetNoEscape,
-                         idInfoToAmode, cgIdInfoId, cgIdInfoLF,
-                         cgIdInfoArgRep )
-import CgInfoTbls      ( entryCode, emitDirectReturnInstr, dataConTagZ,
-                         emitVectoredReturnInstr, closureInfoPtr )
+import CgBindery
+import CgInfoTbls
 import CgCallConv
 import CgCallConv
-import CgStackery      ( setRealSp, mkStkAmodes, adjustStackHW,
-                         getSpRelOffset )
-import CgHeapery       ( setRealHp, getHpRelOffset )
-import CgUtils         ( emitSimultaneously )
+import CgStackery
+import CgHeapery
+import CgUtils
 import CgTicky
 import ClosureInfo
 import CgTicky
 import ClosureInfo
-import SMRep           ( CgRep, isVoidArg, separateByPtrFollowness )
+import SMRep
 import Cmm     
 import CmmUtils
 import Cmm     
 import CmmUtils
-import CLabel          ( CLabel, mkRtsPrimOpLabel, mkSeqInfoLabel )
-import Type            ( isUnLiftedType )
-import Id              ( Id, idName, idUnique, idType )
-import DataCon         ( DataCon, dataConTyCon )
-import StgSyn          ( StgArg )
-import TyCon            ( TyCon )
-import PrimOp          ( PrimOp )
+import CLabel
+import Type
+import Id
+import DataCon
+import StgSyn
+import TyCon
+import PrimOp
 import Outputable
 
 import Outputable
 
-import Monad           ( when )
+import Control.Monad
 
 -----------------------------------------------------------------------------
 -- Tail Calls
 
 -----------------------------------------------------------------------------
 -- Tail Calls
index 3e72981..985ebb8 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Code generation for ticky-ticky profiling
 --
 --
 -- Code generation for ticky-ticky profiling
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -40,32 +40,30 @@ module CgTicky (
 #include "../includes/DerivedConstants.h"
        -- For REP_xxx constants, which are MachReps
 
 #include "../includes/DerivedConstants.h"
        -- For REP_xxx constants, which are MachReps
 
-import ClosureInfo     ( ClosureInfo, closureSize, slopSize, closureSMRep,
-                         closureUpdReqd, closureName, isStaticClosure )
+import ClosureInfo
 import CgUtils
 import CgMonad
 import CgUtils
 import CgMonad
-import SMRep           ( ClosureType(..), smRepClosureType, CgRep )
+import SMRep
 
 import Cmm
 import MachOp
 
 import Cmm
 import MachOp
-import CmmUtils                ( zeroCLit, mkIntCLit, mkLblExpr, cmmIndexExpr )
-import CLabel          ( CLabel, mkRtsDataLabel, mkRednCountsLabel )
-
-import Name            ( isInternalName )
-import Id              ( Id, idType )
-import StaticFlags     ( opt_DoTickyProfiling )
-import BasicTypes      ( Arity )
-import FastString      ( FastString, mkFastString, LitString ) 
-import Constants       -- Lots of field offsets
+import CmmUtils
+import CLabel
+
+import Name
+import Id
+import StaticFlags
+import BasicTypes
+import FastString
+import Constants
 import Outputable
 
 -- Turgid imports for showTypeCategory
 import PrelNames
 import Outputable
 
 -- Turgid imports for showTypeCategory
 import PrelNames
-import TcType          ( Type, isDictTy, tcSplitTyConApp_maybe,
-                         tcSplitFunTy_maybe )
-import TyCon           ( isPrimTyCon, isTupleTyCon, isEnumerationTyCon,
-                         maybeTyConSingleCon )
-import Maybe
+import TcType
+import TyCon
+
+import Data.Maybe
 
 -----------------------------------------------------------------------------
 --
 
 -----------------------------------------------------------------------------
 --
@@ -83,7 +81,7 @@ staticTickyHdr
 emitTickyCounter :: ClosureInfo -> [Id] -> Int -> Code
 emitTickyCounter cl_info args on_stk
   = ifTicky $
 emitTickyCounter :: ClosureInfo -> [Id] -> Int -> Code
 emitTickyCounter cl_info args on_stk
   = ifTicky $
-    do { mod_name <- moduleName
+    do { mod_name <- getModuleName
        ; fun_descr_lit <- mkStringCLit (fun_descr mod_name)
        ; arg_descr_lit <- mkStringCLit arg_descr
        ; emitDataLits ticky_ctr_label  -- Must match layout of StgEntCounter
        ; fun_descr_lit <- mkStringCLit (fun_descr mod_name)
        ; arg_descr_lit <- mkStringCLit arg_descr
        ; emitDataLits ticky_ctr_label  -- Must match layout of StgEntCounter
index 21e6d08..ab39080 100644 (file)
@@ -2,7 +2,7 @@
 --
 -- Code generator utilities; mostly monadic
 --
 --
 -- Code generator utilities; mostly monadic
 --
--- (c) The University of Glasgow 2004
+-- (c) The University of Glasgow 2004-2006
 --
 -----------------------------------------------------------------------------
 
 --
 -----------------------------------------------------------------------------
 
@@ -34,32 +34,29 @@ module CgUtils (
 #include "HsVersions.h"
 
 import CgMonad
 #include "HsVersions.h"
 
 import CgMonad
-import TyCon           ( TyCon, tyConName )
-import Id              ( Id )
-import Constants       ( wORD_SIZE )
-import SMRep           ( CgRep, StgWord, hALF_WORD_SIZE_IN_BITS, ByteOff,
-                         WordOff, idCgRep )
+import TyCon
+import Id
+import Constants
+import SMRep
 import PprCmm          ( {- instances -} )
 import Cmm
 import CLabel
 import CmmUtils
 import PprCmm          ( {- instances -} )
 import Cmm
 import CLabel
 import CmmUtils
-import MachOp          ( MachRep(..), wordRep, MachOp(..),  MachHint(..),
-                         mo_wordOr, mo_wordAnd, mo_wordNe, mo_wordEq,
-                         mo_wordULt, mo_wordUGt, mo_wordUGe, machRepByteWidth )
-import ForeignCall     ( CCallConv(..) )
-import Literal         ( Literal(..) )
-import Digraph         ( SCC(..), stronglyConnComp )
-import ListSetOps      ( assocDefault )
-import Util            ( filterOut, sortLe )
-import DynFlags                ( DynFlags(..), HscTarget(..) )
-import FastString      ( LitString, bytesFS )
-import PackageConfig   ( PackageId )
+import MachOp
+import ForeignCall
+import Literal
+import Digraph
+import ListSetOps
+import Util
+import DynFlags
+import FastString
+import PackageConfig
 import Outputable
 
 import Outputable
 
-import Char            ( ord )
-import DATA_BITS
-import DATA_WORD       ( Word8 )
-import Maybe           ( isNothing )
+import Data.Char
+import Data.Bits
+import Data.Word
+import Data.Maybe
 
 -------------------------------------------------------------------------
 --
 
 -------------------------------------------------------------------------
 --
index d137d4d..831e4ec 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The Univserity of Glasgow 1992-2004
 %
 
 % (c) The Univserity of Glasgow 1992-2004
 %
 
@@ -57,27 +58,25 @@ module ClosureInfo (
 #include "HsVersions.h"
 
 import StgSyn
 #include "HsVersions.h"
 
 import StgSyn
-import SMRep           -- all of it
+import SMRep
 
 import CLabel
 
 
 import CLabel
 
-import Packages                ( isDllName )
-import PackageConfig   ( PackageId )
-import StaticFlags     ( opt_SccProfilingOn, opt_OmitBlackHoling,
-                         opt_Parallel, opt_DoTickyProfiling )
-import Id              ( Id, idType, idArity, idName )
-import DataCon         ( DataCon, dataConTyCon, isNullaryRepDataCon, dataConName )
-import Name            ( Name, nameUnique, getOccName, getOccString )
-import OccName         ( occNameString )
-import Type            ( isUnLiftedType, Type, repType, splitTyConApp_maybe )
-import TcType          ( tcSplitSigmaTy )
-import TyCon           ( isFunTyCon, isAbstractTyCon )
-import BasicTypes      ( TopLevelFlag(..), isNotTopLevel, isTopLevel, ipNameName )
+import Packages
+import PackageConfig
+import StaticFlags
+import Id
+import DataCon
+import Name
+import OccName
+import Type
+import TypeRep
+import TcType
+import TyCon
+import BasicTypes
 import FastString
 import Outputable
 import Constants
 import FastString
 import Outputable
 import Constants
-
-import TypeRep -- TEMP
 \end{code}
 
 
 \end{code}
 
 
index 4c08242..2c4ea5c 100644 (file)
@@ -1,19 +1,15 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[CodeGen]{@CodeGen@: main module of the code generator}
+
+The Code Generator
 
 This module says how things get going at the top level.
 
 @codeGen@ is the interface to the outside world.  The \tr{cgTop*}
 functions drive the mangling of top-level bindings.
 
 
 This module says how things get going at the top level.
 
 @codeGen@ is the interface to the outside world.  The \tr{cgTop*}
 functions drive the mangling of top-level bindings.
 
-%************************************************************************
-%*                                                                     *
-\subsection[codeGen-outside-interface]{The code generator's offering to the world}
-%*                                                                     *
-%************************************************************************
-
 \begin{code}
 module CodeGen ( codeGen ) where
 
 \begin{code}
 module CodeGen ( codeGen ) where
 
@@ -25,35 +21,34 @@ module CodeGen ( codeGen ) where
 import CgExpr           ( {-NOTHING!-} )       -- DO NOT DELETE THIS IMPORT
 import CgProf
 import CgMonad
 import CgExpr           ( {-NOTHING!-} )       -- DO NOT DELETE THIS IMPORT
 import CgProf
 import CgMonad
-import CgBindery       ( CgIdInfo, addBindC, addBindsC, getCgIdInfo,
-                         cgIdInfoId )
-import CgClosure       ( cgTopRhsClosure )
-import CgCon           ( cgTopRhsCon, cgTyCon )
-import CgUtils         ( cmmRegOffW, emitRODataLits, cmmNeWord )
+import CgBindery
+import CgClosure
+import CgCon
+import CgUtils
 
 import CLabel
 import Cmm
 
 import CLabel
 import Cmm
-import CmmUtils                ( zeroCLit, mkIntCLit, mkLblExpr )
-import PprCmm          ( pprCmms )
-import MachOp          ( wordRep )
+import CmmUtils
+import PprCmm
+import MachOp
 
 import StgSyn
 
 import StgSyn
-import PrelNames       ( gHC_PRIM, rOOT_MAIN, gHC_TOP_HANDLER )
-import DynFlags                ( DynFlags(..), DynFlag(..), dopt )
-import StaticFlags     ( opt_SccProfilingOn )
-
-import PackageConfig   ( PackageId )
-import HscTypes                ( ForeignStubs(..) )
-import CostCentre       ( CollectedCCs )
-import Id               ( Id, idName, setIdName )
-import Name            ( nameSrcLoc, nameOccName, nameUnique, isInternalName, mkExternalName )
-import OccName         ( mkLocalOcc )
-import TyCon            ( TyCon )
-import Module          ( Module )
-import ErrUtils                ( dumpIfSet_dyn, showPass )
+import PrelNames
+import DynFlags
+import StaticFlags
+
+import PackageConfig
+import HscTypes
+import CostCentre
+import Id
+import Name
+import OccName
+import TyCon
+import Module
+import ErrUtils
 
 #ifdef DEBUG
 
 #ifdef DEBUG
-import Panic           ( assertPanic )
+import Panic
 #endif
 \end{code}
 
 #endif
 \end{code}
 
@@ -326,7 +321,7 @@ which refers to this name).
 maybeExternaliseId :: DynFlags -> Id -> FCode Id
 maybeExternaliseId dflags id
   | dopt Opt_SplitObjs dflags,         -- Externalise the name for -split-objs
 maybeExternaliseId :: DynFlags -> Id -> FCode Id
 maybeExternaliseId dflags id
   | dopt Opt_SplitObjs dflags,         -- Externalise the name for -split-objs
-    isInternalName name = do { mod <- moduleName
+    isInternalName name = do { mod <- getModuleName
                             ; returnFC (setIdName id (externalise mod)) }
   | otherwise          = returnFC id
   where
                             ; returnFC (setIdName id (externalise mod)) }
   | otherwise          = returnFC id
   where
index 521b626..2419ba1 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[SMRep]{Storage manager representations of closure}
+
+Storage manager representation of closures
 
 This is here, rather than in ClosureInfo, just to keep nhc happy.
 Other modules should access this info through ClosureInfo.
 
 This is here, rather than in ClosureInfo, just to keep nhc happy.
 Other modules should access this info through ClosureInfo.
@@ -38,16 +40,15 @@ module SMRep (
 #include "HsVersions.h"
 #include "../includes/MachDeps.h"
 
 #include "HsVersions.h"
 #include "../includes/MachDeps.h"
 
-import Id              ( Id, idType )
-import Type            ( Type, typePrimRep, PrimRep(..) )
-import TyCon           ( TyCon, tyConPrimRep )
-import MachOp--                ( MachRep(..), MachHint(..), wordRep )
-import StaticFlags     ( opt_SccProfilingOn, opt_GranMacros,
-                         opt_Unregisterised )
+import Id
+import Type
+import TyCon
+import MachOp
+import StaticFlags
 import Constants
 import Outputable
 
 import Constants
 import Outputable
 
-import DATA_WORD
+import Data.Word
 \end{code}
 
 
 \end{code}
 
 
index 22f7dc8..c32ca7c 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 Taken quite directly from the Peyton Jones/Lester paper.
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 Taken quite directly from the Peyton Jones/Lester paper.
@@ -25,16 +26,15 @@ module CoreFVs (
 #include "HsVersions.h"
 
 import CoreSyn
 #include "HsVersions.h"
 
 import CoreSyn
-import Id              ( Id, idType, idSpecialisation, isLocalId )
-import IdInfo          ( specInfoFreeVars )
+import Id
+import IdInfo
 import NameSet
 import NameSet
-import UniqFM          ( delFromUFM )
-import Name            ( isExternalName )
+import UniqFM
+import Name
 import VarSet
 import VarSet
-import Var             ( Var, isId, isLocalVar, varName )
-import Type            ( tyVarsOfType )
-import TcType          ( tyClsNamesOfType )
-import Util            ( mapAndUnzip )
+import Var
+import TcType
+import Util
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
@@ -213,11 +213,11 @@ exprFreeNames e
     go (Var v) 
       | isExternalName n    = unitNameSet n
       | otherwise          = emptyNameSet
     go (Var v) 
       | isExternalName n    = unitNameSet n
       | otherwise          = emptyNameSet
-      where n = varName v
+      where n = idName v
     go (Lit _)                     = emptyNameSet
     go (Type ty)           = tyClsNamesOfType ty       -- Don't need free tyvars
     go (App e1 e2)         = go e1 `unionNameSets` go e2
     go (Lit _)                     = emptyNameSet
     go (Type ty)           = tyClsNamesOfType ty       -- Don't need free tyvars
     go (App e1 e2)         = go e1 `unionNameSets` go e2
-    go (Lam v e)           = go e `delFromNameSet` varName v
+    go (Lam v e)           = go e `delFromNameSet` idName v
     go (Note n e)          = go e  
     go (Cast e co)          = go e `unionNameSets` tyClsNamesOfType co
     go (Let (NonRec b r) e) = go e `unionNameSets` go r
     go (Note n e)          = go e  
     go (Cast e co)          = go e `unionNameSets` tyClsNamesOfType co
     go (Let (NonRec b r) e) = go e `unionNameSets` go r
index 406bf90..a33c469 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
-\section[CoreLint]{A ``lint'' pass to check for Core correctness}
+
+A ``lint'' pass to check for Core correctness
 
 \begin{code}
 module CoreLint (
 
 \begin{code}
 module CoreLint (
@@ -13,43 +15,32 @@ module CoreLint (
 #include "HsVersions.h"
 
 import CoreSyn
 #include "HsVersions.h"
 
 import CoreSyn
-import CoreFVs         ( idFreeVars )
-import CoreUtils       ( findDefault, exprOkForSpeculation, coreBindsSize )
+import CoreFVs
+import CoreUtils
 import Bag
 import Bag
-import Literal         ( literalType )
-import DataCon         ( dataConRepType, dataConTyCon, dataConWorkId )
-import TysWiredIn      ( tupleCon )
-import Var             ( Var, Id, TyVar, isCoVar, idType, tyVarKind, 
-                         mustHaveLocalBinding, setTyVarKind, setIdType  )
-import VarEnv           ( lookupInScope )
+import Literal
+import DataCon
+import TysWiredIn
+import Var
+import VarEnv
 import VarSet
 import VarSet
-import Name            ( getSrcLoc )
+import Name
 import PprCore
 import PprCore
-import ErrUtils                ( dumpIfSet_core, ghcExit, Message, showPass,
-                         mkLocMessage, debugTraceMsg )
-import SrcLoc          ( SrcLoc, noSrcLoc, mkSrcSpan )
-import Type            ( Type, tyVarsOfType, coreEqType,
-                         splitFunTy_maybe, 
-                         splitForAllTy_maybe, splitTyConApp_maybe,
-                         isUnLiftedType, typeKind, mkForAllTy, mkFunTy,
-                         isUnboxedTupleType, isSubKind,
-                         substTyWith, emptyTvSubst, extendTvInScope, 
-                         TvSubst, substTy,
-                         extendTvSubst, substTyVarBndr, isInScope,
-                         getTvInScope )
-import Coercion         ( coercionKind, coercionKindPredTy )
-import TyCon           ( isPrimTyCon, isNewTyCon )
-import BasicTypes      ( RecFlag(..), Boxity(..), isNonRec )
-import StaticFlags     ( opt_PprStyle_Debug )
-import DynFlags                ( DynFlags, DynFlag(..), dopt )
+import ErrUtils
+import SrcLoc
+import Type
+import Coercion
+import TyCon
+import BasicTypes
+import StaticFlags
+import DynFlags
 import Outputable
 
 #ifdef DEBUG
 import Util             ( notNull )
 #endif
 
 import Outputable
 
 #ifdef DEBUG
 import Util             ( notNull )
 #endif
 
-import Maybe
-
+import Data.Maybe
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index c8f35ea..3b8f577 100644 (file)
@@ -1,7 +1,8 @@
 %
 %
-% (c) The University of Glasgow, 1994-2000
+% (c) The University of Glasgow, 1994-2006
 %
 %
-\section{Core pass to saturate constructors and PrimOps}
+
+Core pass to saturate constructors and PrimOps
 
 \begin{code}
 module CorePrep (
 
 \begin{code}
 module CorePrep (
@@ -10,33 +11,27 @@ module CorePrep (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import CoreUtils( exprType, exprIsHNF, etaExpand, exprArity, exprOkForSpeculation )
-import CoreFVs ( exprFreeVars )
-import CoreLint        ( endPass )
+import CoreUtils hiding (exprIsTrivial)
+import CoreFVs
+import CoreLint
 import CoreSyn
 import CoreSyn
-import Type    ( Type, applyTy, 
-                  splitFunTy_maybe, isUnLiftedType, isUnboxedTupleType, seqType )
-import Coercion ( coercionKind )
-import TyCon   ( TyCon, tyConDataCons )
-import NewDemand  ( Demand, isStrictDmd, lazyDmd, StrictSig(..), DmdType(..) )
-import Var     ( Var, Id, setVarUnique )
+import Type
+import Coercion
+import TyCon
+import NewDemand
+import Var
 import VarSet
 import VarEnv
 import VarSet
 import VarEnv
-import Id      ( mkSysLocal, idType, idNewDemandInfo, idArity, setIdUnfolding, 
-                 isFCallId, isGlobalId, isLocalId, hasNoBinding, idNewStrictness, 
-                 isPrimOpId_maybe
-               )
-import DataCon   ( dataConWorkId )
-import PrimOp    ( PrimOp( DataToTagOp ) )
-import BasicTypes ( TopLevelFlag(..), isTopLevel, isNotTopLevel,
-                   RecFlag(..), isNonRec
-                 )
+import Id
+import DataCon
+import PrimOp
+import BasicTypes
 import UniqSupply
 import Maybes
 import OrdList
 import ErrUtils
 import DynFlags
 import UniqSupply
 import Maybes
 import OrdList
 import ErrUtils
 import DynFlags
-import Util       ( listLengthCmp )
+import Util
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 983f2a8..6eecc27 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[CoreUtils]{Utility functions on @Core@ syntax}
+
+Utility functions on @Core@ syntax
 
 \begin{code}
 module CoreSubst (
 
 \begin{code}
 module CoreSubst (
@@ -24,29 +26,23 @@ module CoreSubst (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import CoreSyn         ( Expr(..), Bind(..), CoreExpr, CoreBind,
-                         CoreRule(..), hasUnfolding, noUnfolding
-                       )
-import CoreFVs         ( exprFreeVars )
-import CoreUtils       ( exprIsTrivial )
+import CoreSyn
+import CoreFVs
+import CoreUtils
 
 
-import qualified Type  ( substTy, substTyVarBndr )
-import Type            ( Type, tyVarsOfType, TvSubstEnv, TvSubst(..), mkTyVarTy )
+import qualified Type
+import Type     ( Type, TvSubst(..), TvSubstEnv )
 import VarSet
 import VarEnv
 import VarSet
 import VarEnv
-import Var             ( setVarUnique, isId )
-import Id              ( idType, idInfo, setIdType, maybeModifyIdInfo, isLocalId )
-import IdInfo          ( IdInfo, SpecInfo(..), specInfo, setSpecInfo, isEmptySpecInfo,
-                         unfoldingInfo, setUnfoldingInfo, seqSpecInfo,
-                         WorkerInfo(..), workerExists, workerInfo, setWorkerInfo
-                       )
-import Unique          ( Unique )
-import UniqSupply      ( UniqSupply, uniqFromSupply, uniqsFromSupply )
-import Var             ( Var, Id, TyVar, isTyVar )
-import Maybes          ( orElse )
+import Id
+import Var      ( Var, TyVar, setVarUnique )
+import IdInfo
+import Unique
+import UniqSupply
+import Maybes
 import Outputable
 import PprCore         ()              -- Instances
 import Outputable
 import PprCore         ()              -- Instances
-import Util            ( mapAccumL )
+import Util
 import FastTypes
 \end{code}
 
 import FastTypes
 \end{code}
 
@@ -148,7 +144,7 @@ lookupIdSubst (Subst in_scope ids tvs) v
 -}
 
 lookupTvSubst :: Subst -> TyVar -> Type
 -}
 
 lookupTvSubst :: Subst -> TyVar -> Type
-lookupTvSubst (Subst _ ids tvs) v = lookupVarEnv tvs v `orElse` mkTyVarTy v
+lookupTvSubst (Subst _ ids tvs) v = lookupVarEnv tvs v `orElse` Type.mkTyVarTy v
 
 ------------------------------
 isInScope :: Var -> Subst -> Bool
 
 ------------------------------
 isInScope :: Var -> Subst -> Bool
@@ -279,7 +275,8 @@ substIdBndr rec_subst subst@(Subst in_scope env tvs) old_id
        | otherwise      = setIdType id1 (substTy subst old_ty)
 
     old_ty = idType old_id
        | otherwise      = setIdType id1 (substTy subst old_ty)
 
     old_ty = idType old_id
-    no_type_change = isEmptyVarEnv tvs || isEmptyVarSet (tyVarsOfType old_ty)
+    no_type_change = isEmptyVarEnv tvs || 
+                     isEmptyVarSet (Type.tyVarsOfType old_ty)
 
        -- new_id has the right IdInfo
        -- The lazy-set is because we're in a loop here, with 
 
        -- new_id has the right IdInfo
        -- The lazy-set is because we're in a loop here, with 
@@ -361,7 +358,7 @@ substTy (Subst in_scope id_env tv_env) ty
 \begin{code}
 substIdType :: Subst -> Id -> Id
 substIdType subst@(Subst in_scope id_env tv_env) id
 \begin{code}
 substIdType :: Subst -> Id -> Id
 substIdType subst@(Subst in_scope id_env tv_env) id
-  | isEmptyVarEnv tv_env || isEmptyVarSet (tyVarsOfType old_ty) = id
+  | isEmptyVarEnv tv_env || isEmptyVarSet (Type.tyVarsOfType old_ty) = id
   | otherwise  = setIdType id (substTy subst old_ty)
                -- The tyVarsOfType is cheaper than it looks
                -- because we cache the free tyvars of the type
   | otherwise  = setIdType id (substTy subst old_ty)
                -- The tyVarsOfType is cheaper than it looks
                -- because we cache the free tyvars of the type
@@ -425,5 +422,5 @@ substVarSet subst fvs
   where
     subst_fv subst fv 
        | isId fv   = exprFreeVars (lookupIdSubst subst fv)
   where
     subst_fv subst fv 
        | isId fv   = exprFreeVars (lookupIdSubst subst fv)
-       | otherwise = tyVarsOfType (lookupTvSubst subst fv)
+       | otherwise = Type.tyVarsOfType (lookupTvSubst subst fv)
 \end{code}
 \end{code}
index f5627e7..3c98f28 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[CoreSyn]{A data type for the Haskell compiler midsection}
+
+CoreSyn: A data type for the Haskell compiler midsection
 
 \begin{code}
 module CoreSyn (
 
 \begin{code}
 module CoreSyn (
@@ -46,16 +48,16 @@ module CoreSyn (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import StaticFlags     ( opt_RuntimeTypes )
-import CostCentre      ( CostCentre, noCostCentre )
-import Var             ( Var, Id, TyVar, isTyVar, isId )
-import Type            ( Type, mkTyVarTy, seqType )
-import Coercion         ( Coercion )
-import Name            ( Name )
-import OccName         ( OccName )
-import Literal         ( Literal, mkMachInt )
-import DataCon         ( DataCon, dataConWorkId, dataConTag )
-import BasicTypes      ( Activation )
+import StaticFlags
+import CostCentre
+import Var
+import Type
+import Coercion
+import Name
+import OccName
+import Literal
+import DataCon
+import BasicTypes
 import FastString
 import Outputable
 
 import FastString
 import Outputable
 
index bacf64f..c4e7ed9 100644 (file)
@@ -1,7 +1,11 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1996-1998
 %
 
 % (c) The AQUA Project, Glasgow University, 1996-1998
 %
 
+This module contains "tidying" code for *nested* expressions, bindings, rules.
+The code for *top-level* bindings is in TidyPgm.
+
 \begin{code}
 module CoreTidy (
        tidyExpr, tidyVarOcc, tidyRule, tidyRules 
 \begin{code}
 module CoreTidy (
        tidyExpr, tidyVarOcc, tidyRule, tidyRules 
@@ -10,27 +14,21 @@ module CoreTidy (
 #include "HsVersions.h"
 
 import CoreSyn
 #include "HsVersions.h"
 
 import CoreSyn
-import CoreUtils       ( exprArity )
-import Id              ( Id, mkUserLocal, idInfo, setIdInfo, idUnique, idType )
-import IdInfo          ( setArityInfo, vanillaIdInfo,
-                         newStrictnessInfo, setAllStrictnessInfo,
-                         newDemandInfo, setNewDemandInfo )
-import Type            ( tidyType, tidyTyVarBndr )
-import Var             ( Var, varName )
+import CoreUtils
+import Id
+import IdInfo
+import Type
+import Var
 import VarEnv
 import VarEnv
-import UniqFM          ( lookupUFM )
-import Name            ( Name, getOccName )
-import OccName         ( tidyOccName )
-import SrcLoc          ( noSrcLoc )
-import Maybes          ( orElse )
-import Outputable
-import Util            ( mapAccumL )
+import UniqFM
+import Name hiding (tidyNameOcc)
+import OccName
+import SrcLoc
+import Maybes
+import Util
 \end{code}
 
 
 \end{code}
 
 
-This module contains "tidying" code for *nested* expressions, bindings, rules.
-The code for *top-level* bindings is in TidyPgm.
-
 %************************************************************************
 %*                                                                     *
 \subsection{Tidying expressions, rules}
 %************************************************************************
 %*                                                                     *
 \subsection{Tidying expressions, rules}
@@ -115,7 +113,7 @@ tidyNameOcc :: TidyEnv -> Name -> Name
 -- Fortunately, we can lookup in the VarEnv with a name
 tidyNameOcc (_, var_env) n = case lookupUFM var_env n of
                                Nothing -> n
 -- Fortunately, we can lookup in the VarEnv with a name
 tidyNameOcc (_, var_env) n = case lookupUFM var_env n of
                                Nothing -> n
-                               Just v  -> varName v
+                               Just v  -> idName v
 
 tidyVarOcc :: TidyEnv -> Var -> Var
 tidyVarOcc (_, var_env) v = lookupVarEnv var_env v `orElse` v
 
 tidyVarOcc :: TidyEnv -> Var -> Var
 tidyVarOcc (_, var_env) v = lookupVarEnv var_env v `orElse` v
index ad2a391..14413f4 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1994-1998
 %
 % (c) The AQUA Project, Glasgow University, 1994-1998
 %
-\section[CoreUnfold]{Core-syntax unfoldings}
+
+Core-syntax unfoldings
 
 Unfoldings (which can travel across module boundaries) are in Core
 syntax (namely @CoreExpr@s).
 
 Unfoldings (which can travel across module boundaries) are in Core
 syntax (namely @CoreExpr@s).
@@ -30,31 +32,24 @@ module CoreUnfold (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import StaticFlags     ( opt_UF_CreationThreshold, opt_UF_UseThreshold,
-                         opt_UF_FunAppDiscount, opt_UF_KeenessFactor,
-                         opt_UF_DearOp,
-                       )
-import DynFlags                ( DynFlags, DynFlag(..), dopt )
+import StaticFlags
+import DynFlags
 import CoreSyn
 import PprCore         ()      -- Instances
 import CoreSyn
 import PprCore         ()      -- Instances
-import OccurAnal       ( occurAnalyseExpr )
-import CoreUtils       ( exprIsHNF, exprIsCheap, exprIsTrivial )
-import Id              ( Id, idType, isId,
-                         idUnfolding, globalIdDetails
-                       )
-import DataCon         ( isUnboxedTupleCon )
-import Literal         ( litSize )
-import PrimOp          ( primOpIsDupable, primOpOutOfLine )
-import IdInfo          ( GlobalIdDetails(..) )
-import Type            ( isUnLiftedType )
-import PrelNames       ( hasKey, buildIdKey, augmentIdKey )
+import OccurAnal
+import CoreUtils
+import Id
+import DataCon
+import Literal
+import PrimOp
+import IdInfo
+import Type
+import PrelNames
 import Bag
 import FastTypes
 import Outputable
 
 import Bag
 import FastTypes
 import Outputable
 
-#if __GLASGOW_HASKELL__ >= 404
-import GLAEXTS         ( Int# )
-#endif
+import GHC.Exts                ( Int# )
 \end{code}
 
 
 \end{code}
 
 
index 38e4a11..ddeffb7 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[CoreUtils]{Utility functions on @Core@ syntax}
+
+Utility functions on @Core@ syntax
 
 \begin{code}
 module CoreUtils (
 
 \begin{code}
 module CoreUtils (
@@ -38,57 +40,41 @@ module CoreUtils (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-
-import GLAEXTS         -- For `xori` 
-
 import CoreSyn
 import CoreSyn
-import CoreFVs         ( exprFreeVars )
-import PprCore         ( pprCoreExpr )
-import Var             ( Var, TyVar, CoVar, tyVarKind, mkCoVar, mkTyVar )
-import OccName          ( mkVarOccFS )
-import SrcLoc          ( noSrcLoc )
-import VarSet          ( unionVarSet )
+import CoreFVs
+import PprCore
+import Var
+import SrcLoc
+import VarSet
 import VarEnv
 import VarEnv
-import Name            ( hashName, mkSysTvName )
+import Name
 #if mingw32_TARGET_OS
 #if mingw32_TARGET_OS
-import Packages                ( isDllName )
+import Packages
 #endif
 #endif
-import Literal         ( hashLiteral, literalType, litIsDupable, 
-                         litIsTrivial, isZeroLit, Literal( MachLabel ) )
-import DataCon         ( DataCon, dataConRepArity, eqSpecPreds, 
-                         dataConTyCon, dataConRepArgTys,
-                          dataConUnivTyVars, dataConExTyVars, dataConEqSpec,
-                          dataConOrigArgTys, dataConTheta )
-import PrimOp          ( PrimOp(..), primOpOkForSpeculation, primOpIsCheap )
-import Id              ( Id, idType, globalIdDetails, idNewStrictness, 
-                         mkWildId, idArity, idName, idUnfolding, idInfo,
-                         isOneShotBndr, isStateHackType, 
-                         isDataConWorkId_maybe, mkSysLocal, mkUserLocal,
-                         isDataConWorkId, isBottomingId, isDictId
-                       )
-import IdInfo          ( GlobalIdDetails(..), megaSeqIdInfo )
-import NewDemand       ( appIsBottom )
-import Type            ( Type, mkFunTy, mkForAllTy, splitFunTy_maybe,
-                         splitFunTy, tcEqTypeX,
-                         applyTys, isUnLiftedType, seqType, mkTyVarTy,
-                         splitForAllTy_maybe, isForAllTy, 
-                         splitTyConApp_maybe, splitTyConApp, coreEqType, funResultTy, applyTy,
-                          substTyWith, mkPredTy, zipOpenTvSubst, substTy, substTyVar
-                       )
-import Coercion         ( Coercion, mkTransCoercion, coercionKind,
-                          splitNewTypeRepCo_maybe, mkSymCoercion,
-                          decomposeCo, coercionKindPredTy )
-import TyCon           ( tyConArity )
-import TysWiredIn      ( boolTy, trueDataCon, falseDataCon )
-import CostCentre      ( CostCentre )
-import BasicTypes      ( Arity )
-import PackageConfig   ( PackageId )
-import Unique          ( Unique )
+import Literal
+import DataCon
+import PrimOp
+import Id
+import IdInfo
+import NewDemand
+import Type
+import Coercion
+import TyCon
+import TysWiredIn
+import CostCentre
+import BasicTypes
+import PackageConfig
+import Unique
 import Outputable
 import Outputable
-import DynFlags                ( DynFlags, DynFlag(Opt_DictsCheap), dopt )
-import TysPrim         ( alphaTy )     -- Debugging only
-import Util             ( equalLength, lengthAtLeast, foldl2 )
-import FastString       ( FastString )
+import DynFlags
+import TysPrim
+import FastString
+
+#ifdef DEBUG
+import Util
+#endif
+
+import GHC.Exts                -- For `xori` 
 \end{code}
 
 
 \end{code}
 
 
index 8c00131..c5035e2 100644 (file)
@@ -1,5 +1,5 @@
 %
 %
-% (c) The University of Glasgow 2001
+% (c) The University of Glasgow 2001-2006
 %
 \begin{code}
 
 %
 \begin{code}
 
index 246bfa0..467cff5 100644 (file)
@@ -1,5 +1,5 @@
 
 
-% (c) The University of Glasgow 2001
+% (c) The University of Glasgow 2001-2006
 %
 \begin{code}
 
 %
 \begin{code}
 
@@ -18,19 +18,18 @@ import TyCon
 import TypeRep
 import Type
 import PprExternalCore -- Instances
 import TypeRep
 import Type
 import PprExternalCore -- Instances
-import DataCon ( DataCon, dataConExTyVars, dataConRepArgTys, 
-                 dataConName, dataConTyCon )
+import DataCon
 import CoreSyn
 import Var
 import IdInfo
 import Literal
 import Name
 import CoreSyn
 import Var
 import IdInfo
 import Literal
 import Name
-import NameSet ( NameSet, emptyNameSet )
-import UniqSet ( elementOfUniqSet )
+import NameSet
+import UniqSet
 import Outputable
 import ForeignCall
 import Outputable
 import ForeignCall
-import DynFlags        ( DynFlags(..) )
-import StaticFlags     ( opt_EmitExternalCore )
+import DynFlags
+import StaticFlags
 import IO
 import FastString
 
 import IO
 import FastString
 
index 8713e74..8023b98 100644 (file)
@@ -1,11 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1996-1998
 %
 % (c) The AQUA Project, Glasgow University, 1996-1998
 %
-%************************************************************************
-%*                                                                     *
-\section[PprCore]{Printing of Core syntax, including for interfaces}
-%*                                                                     *
-%************************************************************************
+
+Printing of Core syntax
 
 \begin{code}
 module PprCore (
 
 \begin{code}
 module PprCore (
@@ -17,34 +15,24 @@ module PprCore (
 #include "HsVersions.h"
 
 import CoreSyn
 #include "HsVersions.h"
 
 import CoreSyn
-import CostCentre      ( pprCostCentreCore )
-import Var             ( Var )
-import Id              ( Id, idType, isDataConWorkId_maybe, idArity,
-                         idInfo, globalIdDetails, isGlobalId, isExportedId 
-                       )
-import Var             ( TyVar, isTyVar, tyVarKind )
-import IdInfo          ( IdInfo, megaSeqIdInfo, 
-                         inlinePragInfo, occInfo, newDemandInfo, 
-                         lbvarInfo, hasNoLBVarInfo,
-                         arityInfo, ppArityInfo, 
-                         specInfo, pprNewStrictness,
-                         workerInfo, ppWorkerInfo,
-                         newStrictnessInfo, cafInfo, ppCafInfo, specInfoRules
-                       )
-import NewDemand       ( isTop )
+import CostCentre
+import Var
+import Id
+import IdInfo
+import NewDemand
 #ifdef OLD_STRICTNESS
 #ifdef OLD_STRICTNESS
-import Id              ( idDemandInfo )
-import IdInfo          ( cprInfo, ppCprInfo, strictnessInfo, ppStrictnessInfo ) 
+import Id
+import IdInfo
 #endif
 
 #endif
 
-import DataCon         ( dataConTyCon )
-import TyCon           ( tupleTyConBoxity, isTupleTyCon )
-import Type            ( pprParendType, pprType, pprParendKind )
-import Coercion         ( coercionKindPredTy )
-import BasicTypes      ( tupleParens, isNoOcc, isAlwaysActive )
-import Util             ( lengthIs )
+import DataCon
+import TyCon
+import Type
+import Coercion
+import BasicTypes
+import Util
 import Outputable
 import Outputable
-import FastString       ( mkFastString )
+import FastString
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index b568f63..fe29131 100644 (file)
@@ -1,14 +1,14 @@
 %
 %
-% (c) The University of Glasgow 2001
+% (c) The University of Glasgow 2001-2006
 %
 %
-\begin{code}
 
 
+\begin{code}
 module PprExternalCore () where
 
 import Pretty
 import ExternalCore
 import Char
 module PprExternalCore () where
 
 import Pretty
 import ExternalCore
 import Char
-import Encoding ( zEncodeString )
+import Encoding
 
 instance Show Module where
   showsPrec d m = shows (pmodule m)
 
 instance Show Module where
   showsPrec d m = shows (pmodule m)
index dad6ccb..d337d02 100644 (file)
@@ -1,3 +1,5 @@
+% (c) The University of Glasgow 2006
+
 \section[CprAnalyse]{Identify functions that always return a
 constructed product result}
 
 \section[CprAnalyse]{Identify functions that always return a
 constructed product result}
 
@@ -11,16 +13,15 @@ module CprAnalyse ( cprAnalyse ) where
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import DynFlags        ( DynFlags, DynFlag(..) )
-import CoreLint                ( showPass, endPass )
+import DynFlags
+import CoreLint
 import CoreSyn
 import CoreSyn
-import CoreUtils       ( exprIsHNF )
-import Id               ( Id, setIdCprInfo, idCprInfo, idArity,
-                         isBottomingId, idDemandInfo, isImplicitId )
-import IdInfo           ( CprInfo(..) )
-import Demand          ( isStrict )
+import CoreUtils
+import Id
+import IdInfo
+import Demand
 import VarEnv
 import VarEnv
-import Util            ( nTimes, mapAccumL )
+import Util
 import Outputable
 
 import Maybe
 import Outputable
 
 import Maybe
index dbf2d72..15fcf39 100644 (file)
@@ -1,36 +1,31 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1997-1998
 %
 % Author: Juan J. Quintela    <quintela@krilin.dc.fi.udc.es>
 % (c) The GRASP/AQUA Project, Glasgow University, 1997-1998
 %
 % Author: Juan J. Quintela    <quintela@krilin.dc.fi.udc.es>
-\section{Module @Check@ in @deSugar@}
 
 \begin{code}
 
 \begin{code}
-
-
 module Check ( check , ExhaustivePat ) where
 
 module Check ( check , ExhaustivePat ) where
 
+#include "HsVersions.h"
 
 import HsSyn           
 
 import HsSyn           
-import TcHsSyn         ( hsLPatType, mkVanillaTuplePat )
-import TcType          ( tcTyConAppTyCon )
-import DsUtils         ( EquationInfo(..), MatchResult(..), 
-                         CanItFail(..), firstPat )
-import MatchLit                ( tidyLitPat, tidyNPat )
-import Id              ( Id, idType )
-import DataCon         ( DataCon, dataConTyCon, dataConOrigArgTys, dataConFieldLabels )
-import Name             ( Name, mkInternalName, getOccName, isDataSymOcc,
-                         getName, mkVarOccFS )
+import TcHsSyn
+import TcType
+import DsUtils
+import MatchLit
+import Id
+import DataCon
+import Name
 import TysWiredIn
 import TysWiredIn
-import PrelNames       ( unboundKey )
-import TyCon            ( tyConDataCons, tupleTyConBoxity, isTupleTyCon )
-import BasicTypes      ( Boxity(..) )
-import SrcLoc          ( noSrcLoc, Located(..), unLoc, noLoc )
+import PrelNames
+import TyCon
+import BasicTypes
+import SrcLoc
 import UniqSet
 import UniqSet
-import Util             ( takeList, splitAtList, notNull )
+import Util
 import Outputable
 import FastString
 import Outputable
 import FastString
-
-#include "HsVersions.h"
 \end{code}
 
 This module performs checks about if one list of equations are:
 \end{code}
 
 This module performs checks about if one list of equations are:
index 29801f2..8fcaf9b 100644 (file)
@@ -1,50 +1,49 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[Desugar]{@deSugar@: the main function}
+
+The Desugarer: turning HsSyn into Core.
 
 \begin{code}
 module Desugar ( deSugar, deSugarExpr ) where
 
 #include "HsVersions.h"
 
 
 \begin{code}
 module Desugar ( deSugar, deSugarExpr ) where
 
 #include "HsVersions.h"
 
-import DynFlags                ( DynFlag(..), DynFlags(..), dopt, GhcMode(..) )
-import StaticFlags     ( opt_SccProfilingOn,
-                         opt_AutoSccsOnAllToplevs,
-                         opt_AutoSccsOnExportedToplevs )
-import DriverPhases    ( isHsBoot )
-import HscTypes                ( ModGuts(..), HscEnv(..), availsToNameSet,
-                         Dependencies(..), ForeignStubs(..), TypeEnv, IsBootInterface )
-import HsSyn           ( RuleDecl(..), RuleBndr(..), LHsExpr, LRuleDecl )
-import TcRnTypes       ( TcGblEnv(..), ImportAvails(..) )
-import MkIface         ( mkUsageInfo )
-import Id              ( Id, setIdExported, idName )
-import Name            ( Name, isExternalName, nameIsLocalOrFrom, nameOccName )
+import DynFlags
+import StaticFlags
+import HscTypes
+import HsSyn
+import TcRnTypes
+import MkIface
+import Id
+import Name
 import CoreSyn
 import CoreSyn
-import PprCore         ( pprRules, pprCoreExpr )
+import PprCore
 import DsMonad
 import DsMonad
-import DsExpr          ( dsLExpr )
-import DsBinds         ( dsTopLHsBinds, decomposeRuleLhs, AutoScc(..) )
-import DsForeign       ( dsForeigns )
+import DsExpr
+import DsBinds
+import DsForeign
 import DsExpr          ()      -- Forces DsExpr to be compiled; DsBinds only
                                -- depends on DsExpr.hi-boot.
 import Module
 import DsExpr          ()      -- Forces DsExpr to be compiled; DsBinds only
                                -- depends on DsExpr.hi-boot.
 import Module
-import UniqFM          ( eltsUFM, delFromUFM )
-import PackageConfig   ( thPackageId )
-import RdrName         ( GlobalRdrEnv )
+import UniqFM
+import PackageConfig
+import RdrName
 import NameSet
 import VarSet
 import NameSet
 import VarSet
-import Rules           ( roughTopNames )
-import CoreLint                ( showPass, endPass )
-import CoreFVs         ( ruleRhsFreeVars, exprsFreeNames )
-import ErrUtils                ( doIfSet, dumpIfSet_dyn )
-import ListSetOps      ( insertList )
+import Rules
+import CoreLint
+import CoreFVs
+import ErrUtils
+import ListSetOps
 import Outputable
 import Outputable
-import SrcLoc          ( Located(..) )
-import DATA_IOREF      ( readIORef )
-import Maybes          ( catMaybes )
+import SrcLoc
+import Maybes
 import FastString
 import FastString
-import Util            ( sortLe )
+import Util
+
+import Data.IORef
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index 4251b20..4d9295d 100644 (file)
@@ -1,23 +1,21 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[DsArrows]{Desugaring arrow commands}
+
+Desugaring arrow commands
 
 \begin{code}
 module DsArrows ( dsProcExpr ) where
 
 #include "HsVersions.h"
 
 
 \begin{code}
 module DsArrows ( dsProcExpr ) where
 
 #include "HsVersions.h"
 
-import Match           ( matchSimply )
-import DsUtils         ( mkErrorAppDs,
-                         mkCoreTupTy, mkCoreTup, selectSimpleMatchVarL,
-                         mkTupleCase, mkBigCoreTup, mkTupleType,
-                         mkTupleExpr, mkTupleSelector,
-                         dsSyntaxTable, lookupEvidence )
+import Match
+import DsUtils
 import DsMonad
 
 import HsSyn
 import DsMonad
 
 import HsSyn
-import TcHsSyn         ( hsLPatType )
+import TcHsSyn
 
 -- NB: The desugarer, which straddles the source and Core worlds, sometimes
 --     needs to see source types (newtypes etc), and sometimes not
 
 -- NB: The desugarer, which straddles the source and Core worlds, sometimes
 --     needs to see source types (newtypes etc), and sometimes not
@@ -26,29 +24,24 @@ import TcHsSyn              ( hsLPatType )
 
 import {-# SOURCE #-} DsExpr ( dsExpr, dsLExpr, dsLocalBinds )
 
 
 import {-# SOURCE #-} DsExpr ( dsExpr, dsLExpr, dsLocalBinds )
 
-import TcType          ( Type, tcSplitAppTy, mkFunTy )
-import Type            ( mkTyConApp, funArgTy )
+import TcType
+import Type
 import CoreSyn
 import CoreSyn
-import CoreFVs         ( exprFreeVars )
-import CoreUtils       ( mkIfThenElse, bindNonRec, exprType )
-
-import Id              ( Id, idType )
-import Name            ( Name )
-import PrelInfo                ( pAT_ERROR_ID )
-import DataCon         ( dataConWrapId )
-import TysWiredIn      ( tupleCon )
-import BasicTypes      ( Boxity(..) )
-import PrelNames       ( eitherTyConName, leftDataConName, rightDataConName,
-                         arrAName, composeAName, firstAName,
-                         appAName, choiceAName, loopAName )
-import Util            ( mapAccumL )
-import Outputable
-
-import HsUtils         ( collectPatBinders, collectPatsBinders )
-import VarSet          ( IdSet, mkVarSet, varSetElems,
-                         intersectVarSet, minusVarSet, extendVarSetList, 
-                         unionVarSet, unionVarSets, elemVarSet )
-import SrcLoc          ( Located(..), unLoc, noLoc )
+import CoreFVs
+import CoreUtils
+
+import Id
+import Name
+import PrelInfo
+import DataCon
+import TysWiredIn
+import BasicTypes
+import PrelNames
+import Util
+
+import HsUtils
+import VarSet
+import SrcLoc
 \end{code}
 
 \begin{code}
 \end{code}
 
 \begin{code}
index 85581c9..9fb2eaf 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[DsBinds]{Pattern-matching bindings (HsBinds and MonoBinds)}
+
+Pattern-matching bindings (HsBinds and MonoBinds)
 
 Handles @HsBinds@; those at the top level require different handling,
 in that the @Rec@/@NonRec@/etc structure is thrown away (whereas at
 
 Handles @HsBinds@; those at the top level require different handling,
 in that the @Rec@/@NonRec@/etc structure is thrown away (whereas at
@@ -15,36 +17,36 @@ module DsBinds ( dsTopLHsBinds, dsLHsBinds, decomposeRuleLhs,
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-
 import {-# SOURCE #-}  DsExpr( dsLExpr, dsExpr )
 import {-# SOURCE #-}  Match( matchWrapper )
 
 import DsMonad
 import {-# SOURCE #-}  DsExpr( dsLExpr, dsExpr )
 import {-# SOURCE #-}  Match( matchWrapper )
 
 import DsMonad
-import DsGRHSs         ( dsGuarded )
+import DsGRHSs
 import DsUtils
 
 import HsSyn           -- lots of things
 import CoreSyn         -- lots of things
 import DsUtils
 
 import HsSyn           -- lots of things
 import CoreSyn         -- lots of things
-import CoreUtils       ( exprType, mkInlineMe, mkSCC )
-
-import OccurAnal       ( occurAnalyseExpr )
-import CostCentre      ( mkAutoCC, IsCafCC(..) )
-import Id              ( Id, DictId, idType, idName, mkLocalId, setInlinePragma )
-import Rules           ( addIdSpecialisations, mkLocalRule )
-import Var             ( TyVar, Var, isGlobalId, setIdNotExported )
+import CoreUtils
+
+import OccurAnal
+import CostCentre
+import Module
+import Id
+import Rules
+import Var              ( TyVar, Var )
 import VarEnv
 import VarEnv
-import Type            ( mkTyVarTy, substTyWith )
-import TysWiredIn      ( voidTy )
-import Module          ( Module )
+import Type
+import TysWiredIn
 import Outputable
 import Outputable
-import SrcLoc          ( Located(..) )
-import Maybes          ( catMaybes, orElse )
-import Bag             ( bagToList )
-import BasicTypes      ( Activation(..), InlineSpec(..), isAlwaysActive )
-import Monad           ( foldM )
-import FastString      ( mkFastString )
-import List            ( (\\) )
+import SrcLoc
+import Maybes
+import Bag
+import BasicTypes hiding ( TopLevel )
+import FastString
 import Util            ( mapSnd )
 import Util            ( mapSnd )
+
+import Control.Monad
+import Data.List
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index a041665..fca20df 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1994-1998
 %
 % (c) The AQUA Project, Glasgow University, 1994-1998
 %
-\section[DsCCall]{Desugaring C calls}
+
+Desugaring foreign calls
 
 \begin{code}
 module DsCCall 
 
 \begin{code}
 module DsCCall 
@@ -19,48 +21,25 @@ import CoreSyn
 
 import DsMonad
 
 
 import DsMonad
 
-import CoreUtils       ( exprType, coreAltType, mkCoerce )
-import Id              ( Id, mkWildId )
-import MkId            ( mkFCallId, realWorldPrimId, mkPrimOpId )
-import Maybes          ( maybeToBool )
-import ForeignCall     ( ForeignCall(..), CCallSpec(..), CCallTarget(..), Safety, 
-                         CCallConv(..), CLabelString )
-import DataCon         ( splitProductType_maybe, dataConSourceArity, dataConWrapId )
-
-import TcType          ( tcSplitIOType_maybe )
-import Type            ( Type, isUnLiftedType, mkFunTys, mkFunTy,
-                         tyVarsOfType, mkForAllTys, mkTyConApp, 
-                         isPrimitiveType, splitTyConApp_maybe, 
-                         splitRecNewType_maybe, splitForAllTy_maybe,
-                         isUnboxedTupleType
-                       )
-import Coercion         ( Coercion, splitNewTypeRepCo_maybe, mkSymCoercion )
-import PrimOp          ( PrimOp(..) )
-import TysPrim         ( realWorldStatePrimTy, intPrimTy,
-                         byteArrayPrimTyCon, mutableByteArrayPrimTyCon,
-                         addrPrimTy
-                       )
-import TyCon           ( TyCon, tyConDataCons, tyConName )
-import TysWiredIn      ( unitDataConId,
-                         unboxedSingletonDataCon, unboxedPairDataCon,
-                         unboxedSingletonTyCon, unboxedPairTyCon,
-                         trueDataCon, falseDataCon, 
-                         trueDataConId, falseDataConId,
-                         listTyCon, charTyCon, boolTy, 
-                         tupleTyCon, tupleCon
-                       )
-import BasicTypes       ( Boxity(..) )
-import Literal         ( mkMachInt )
-import PrelNames       ( Unique, hasKey, boolTyConKey, unitTyConKey,
-                         int8TyConKey, int16TyConKey, int32TyConKey,
-                         word8TyConKey, word16TyConKey, word32TyConKey
-                         -- dotnet interop
-                         , marshalStringName, unmarshalStringName
-                         , marshalObjectName, unmarshalObjectName
-                         , objectTyConName
-                       )
-import VarSet          ( varSetElems )
-import Constants       ( wORD_SIZE)
+import CoreUtils
+import Id
+import MkId
+import Maybes
+import ForeignCall
+import DataCon
+
+import TcType
+import Type
+import Coercion
+import PrimOp
+import TysPrim
+import TyCon
+import TysWiredIn
+import BasicTypes
+import Literal
+import PrelNames
+import VarSet
+import Constants
 import Outputable
 
 #ifdef DEBUG
 import Outputable
 
 #ifdef DEBUG
index a85f100..4a5521c 100644 (file)
@@ -1,66 +1,59 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[DsExpr]{Matching expressions (Exprs)}
+
+Desugaring exporessions.
 
 \begin{code}
 module DsExpr ( dsExpr, dsLExpr, dsLocalBinds, dsValBinds, dsLit ) where
 
 #include "HsVersions.h"
 #if defined(GHCI) && defined(BREAKPOINT)
 
 \begin{code}
 module DsExpr ( dsExpr, dsLExpr, dsLocalBinds, dsValBinds, dsLit ) where
 
 #include "HsVersions.h"
 #if defined(GHCI) && defined(BREAKPOINT)
-import Foreign.StablePtr ( newStablePtr, castStablePtrToPtr )
-import GHC.Exts         ( Ptr(..), Int(..), addr2Int# )
-import IOEnv            ( ioToIOEnv )
-import PrelNames        ( breakpointJumpName, breakpointCondJumpName )
-import TysWiredIn       ( unitTy )
-import TypeRep          ( Type(..) )
-import TyCon            ( isUnLiftedTyCon )
+import Foreign.StablePtr
+import GHC.Exts
+import IOEnv
+import PrelNames
+import TysWiredIn
+import TypeRep
+import TyCon
 #endif
 
 #endif
 
-import Match           ( matchWrapper, matchSinglePat, matchEquations )
-import MatchLit                ( dsLit, dsOverLit )
-import DsBinds         ( dsLHsBinds, dsCoercion )
-import DsGRHSs         ( dsGuarded )
-import DsListComp      ( dsListComp, dsPArrComp )
-import DsUtils         ( mkErrorAppDs, mkStringExpr, mkConsExpr, mkNilExpr,
-                         extractMatchResult, cantFailMatchResult, matchCanFail,
-                         mkCoreTupTy, selectSimpleMatchVarL, lookupEvidence, selectMatchVar )
-import DsArrows                ( dsProcExpr )
+import Match
+import MatchLit
+import DsBinds
+import DsGRHSs
+import DsListComp
+import DsUtils
+import DsArrows
 import DsMonad
 
 #ifdef GHCI
        -- Template Haskell stuff iff bootstrapped
 import DsMonad
 
 #ifdef GHCI
        -- Template Haskell stuff iff bootstrapped
-import DsMeta          ( dsBracket )
+import DsMeta
 #endif
 
 import HsSyn
 #endif
 
 import HsSyn
-import TcHsSyn         ( hsLPatType, mkVanillaTuplePat )
+import TcHsSyn
 
 -- NB: The desugarer, which straddles the source and Core worlds, sometimes
 
 -- NB: The desugarer, which straddles the source and Core worlds, sometimes
---     needs to see source types (newtypes etc), and sometimes not
---     So WATCH OUT; check each use of split*Ty functions.
--- Sigh.  This is a pain.
-
-import TcType          ( tcSplitAppTy, tcSplitFunTys, tcTyConAppTyCon, 
-                         tcTyConAppArgs, isUnLiftedType, Type, mkAppTy )
-import Type            ( splitFunTys, isUnboxedTupleType, mkFunTy )
+--     needs to see source types
+import TcType
+import Type
 import CoreSyn
 import CoreSyn
-import CoreUtils       ( exprType, mkIfThenElse, bindNonRec )
-
-import CostCentre      ( mkUserCC )
-import Id              ( Id, idType, idName, idDataCon )
-import PrelInfo                ( rEC_CON_ERROR_ID )
-import DataCon         ( DataCon, dataConWrapId, dataConFieldLabels, dataConInstOrigArgTys )
-import DataCon         ( isVanillaDataCon )
-import TyCon           ( FieldLabel, tyConDataCons )
-import TysWiredIn      ( tupleCon )
-import BasicTypes      ( RecFlag(..), Boxity(..), ipNameName )
-import PrelNames       ( toPName,
-                         returnMName, bindMName, thenMName, failMName,
-                         mfixName )
-import SrcLoc          ( Located(..), unLoc, getLoc, noLoc )
-import Util            ( zipEqual, zipWithEqual )
-import Bag             ( bagToList )
+import CoreUtils
+
+import CostCentre
+import Id
+import PrelInfo
+import DataCon
+import TyCon
+import TysWiredIn
+import BasicTypes
+import PrelNames
+import SrcLoc
+import Util
+import Bag
 import Outputable
 import FastString
 \end{code}
 import Outputable
 import FastString
 \end{code}
index 462da0e..ba19124 100644 (file)
@@ -1,9 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1998
 %
 % (c) The AQUA Project, Glasgow University, 1998
 %
-\section[DsCCall]{Desugaring \tr{foreign} declarations}
 
 
-Expanding out @foreign import@ and @foreign export@ declarations.
+Desugaring foreign declarations (see also DsCCall).
 
 \begin{code}
 module DsForeign ( dsForeigns ) where
 
 \begin{code}
 module DsForeign ( dsForeigns ) where
@@ -13,48 +13,33 @@ import TcRnMonad    -- temp
 
 import CoreSyn
 
 
 import CoreSyn
 
-import DsCCall         ( dsCCall, mkFCall, boxResult, unboxArg, resultWrapper )
+import DsCCall
 import DsMonad
 
 import DsMonad
 
-import HsSyn           ( ForeignDecl(..), ForeignExport(..), LForeignDecl,
-                         ForeignImport(..), CImportSpec(..) )
-import DataCon         ( splitProductType_maybe )
-#ifdef DEBUG
-import DataCon         ( dataConSourceArity )
-import Type            ( isUnLiftedType )
-#endif
-import MachOp          ( machRepByteWidth, MachRep(..) )
-import SMRep           ( argMachRep, typeCgRep )
-import CoreUtils       ( exprType, mkInlineMe )
-import Id              ( Id, idType, idName, mkSysLocal, setInlinePragma )
-import Literal         ( Literal(..), mkStringLit )
-import Module          ( moduleNameFS, moduleName )
-import Name            ( getOccString, NamedThing(..) )
-import Type            ( repType, coreEqType )
-import Coercion         ( mkUnsafeCoercion )
-import TcType          ( Type, mkFunTys, mkForAllTys, mkTyConApp,
-                         mkFunTy, tcSplitTyConApp_maybe, tcSplitIOType_maybe,
-                         tcSplitForAllTys, tcSplitFunTys, tcTyConAppArgs,
-                         isBoolTy
-                       )
-
-import BasicTypes       ( Boxity(..) )
-import HscTypes                ( ForeignStubs(..) )
-import ForeignCall     ( ForeignCall(..), CCallSpec(..), 
-                         Safety(..), 
-                         CExportSpec(..), CLabelString,
-                         CCallConv(..), ccallConvToInt,
-                         ccallConvAttribute
-                       )
-import TysWiredIn      ( unitTy, tupleTyCon )
-import TysPrim         ( addrPrimTy, mkStablePtrPrimTy, alphaTy, intPrimTy )
-import PrelNames       ( stablePtrTyConName, newStablePtrName, bindIOName,
-                         checkDotnetResName )
-import BasicTypes      ( Activation( NeverActive ) )
-import SrcLoc          ( Located(..), unLoc )
+import HsSyn
+import DataCon
+import MachOp
+import SMRep
+import CoreUtils
+import Id
+import Literal
+import Module
+import Name
+import Type
+import Coercion
+import TcType
+
+import HscTypes
+import ForeignCall
+import TysWiredIn
+import TysPrim
+import PrelNames
+import BasicTypes
+import SrcLoc
 import Outputable
 import Outputable
-import Maybe           ( fromJust, isNothing )
 import FastString
 import FastString
+
+import Data.Maybe
 \end{code}
 
 Desugaring of @foreign@ declarations is naturally split up into
 \end{code}
 
 Desugaring of @foreign@ declarations is naturally split up into
index a8571f1..93f4ead 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[DsGRHSs]{Matching guarded right-hand-sides (GRHSs)}
+
+Matching guarded right-hand-sides (GRHSs)
 
 \begin{code}
 module DsGRHSs ( dsGuarded, dsGRHSs ) where
 
 \begin{code}
 module DsGRHSs ( dsGuarded, dsGRHSs ) where
@@ -11,20 +13,19 @@ module DsGRHSs ( dsGuarded, dsGRHSs ) where
 import {-# SOURCE #-} DsExpr  ( dsLExpr, dsLocalBinds )
 import {-# SOURCE #-} Match   ( matchSinglePat )
 
 import {-# SOURCE #-} DsExpr  ( dsLExpr, dsLocalBinds )
 import {-# SOURCE #-} Match   ( matchSinglePat )
 
-import HsSyn           ( Stmt(..), HsExpr(..), GRHSs(..), GRHS(..), 
-                         LHsExpr, HsMatchContext(..), Pat(..) )
-import CoreSyn         ( CoreExpr )
-import Var             ( Id )
-import Type            ( Type )
+import HsSyn
+import CoreSyn
+import Var
+import Type
 
 import DsMonad
 import DsUtils
 
 import DsMonad
 import DsUtils
-import Unique          ( Uniquable(..) )
-import PrelInfo                ( nON_EXHAUSTIVE_GUARDS_ERROR_ID )
-import TysWiredIn      ( trueDataConId )
-import PrelNames       ( otherwiseIdKey, hasKey )
-import Name            ( Name )
-import SrcLoc          ( unLoc, Located(..) )
+import Unique
+import PrelInfo
+import TysWiredIn
+import PrelNames
+import Name
+import SrcLoc
 \end{code}
 
 @dsGuarded@ is used for both @case@ expressions and pattern bindings.
 \end{code}
 
 @dsGuarded@ is used for both @case@ expressions and pattern bindings.
index 2827fb6..7409101 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[DsListComp]{Desugaring list comprehensions and array comprehensions}
+
+Desugaring list comprehensions and array comprehensions
 
 \begin{code}
 module DsListComp ( dsListComp, dsPArrComp ) where
 
 \begin{code}
 module DsListComp ( dsListComp, dsPArrComp ) where
@@ -10,30 +12,26 @@ module DsListComp ( dsListComp, dsPArrComp ) where
 
 import {-# SOURCE #-} DsExpr ( dsLExpr, dsLocalBinds )
 
 
 import {-# SOURCE #-} DsExpr ( dsLExpr, dsLocalBinds )
 
-import BasicTypes      ( Boxity(..) )
+import BasicTypes
 import HsSyn
 import HsSyn
-import TcHsSyn         ( hsLPatType, mkVanillaTuplePat )
+import TcHsSyn
 import CoreSyn
 
 import DsMonad         -- the monadery used in the desugarer
 import DsUtils
 
 import CoreSyn
 
 import DsMonad         -- the monadery used in the desugarer
 import DsUtils
 
-import DynFlags                ( DynFlag(..), dopt )
-import StaticFlags     ( opt_RulesOff )
-import CoreUtils       ( exprType, mkIfThenElse )
-import Id              ( idType )
-import Var              ( Id )
-import Type            ( mkTyVarTy, mkFunTys, mkFunTy, Type,
-                         splitTyConApp_maybe )
-import TysPrim         ( alphaTyVar )
-import TysWiredIn      ( nilDataCon, consDataCon, trueDataConId, falseDataConId, 
-                         unitDataConId, unitTy, mkListTy, parrTyCon )
-import Match           ( matchSimply )
-import PrelNames       ( foldrName, buildName, replicatePName, mapPName, 
-                         filterPName, zipPName, crossPName ) 
-import PrelInfo                ( pAT_ERROR_ID )
-import SrcLoc          ( noLoc, unLoc )
-import Panic           ( panic )
+import DynFlags
+import StaticFlags
+import CoreUtils
+import Var
+import Type
+import TysPrim
+import TysWiredIn
+import Match
+import PrelNames
+import PrelInfo
+import SrcLoc
+import Panic
 \end{code}
 
 List comprehensions may be desugared in one of two ways: ``ordinary''
 \end{code}
 
 List comprehensions may be desugared in one of two ways: ``ordinary''
index 6c04002..d859d86 100644 (file)
@@ -1,4 +1,7 @@
 -----------------------------------------------------------------------------
 -----------------------------------------------------------------------------
+--
+-- (c) The University of Glasgow 2006
+--
 -- The purpose of this module is to transform an HsExpr into a CoreExpr which
 -- when evaluated, returns a (Meta.Q Meta.Exp) computation analogous to the
 -- input HsExpr. We do this in the DsM monad, which supplies access to
 -- The purpose of this module is to transform an HsExpr into a CoreExpr which
 -- when evaluated, returns a (Meta.Q Meta.Exp) computation analogous to the
 -- input HsExpr. We do this in the DsM monad, which supplies access to
@@ -21,47 +24,45 @@ module DsMeta( dsBracket,
 
 import {-# SOURCE #-}  DsExpr ( dsExpr )
 
 
 import {-# SOURCE #-}  DsExpr ( dsExpr )
 
-import MatchLit          ( dsLit )
-import DsUtils    ( mkListExpr, mkStringExpr, mkCoreTup, mkIntExpr )
+import MatchLit
+import DsUtils
 import DsMonad
 
 import qualified Language.Haskell.TH as TH
 
 import HsSyn
 import DsMonad
 
 import qualified Language.Haskell.TH as TH
 
 import HsSyn
-import Class (FunDep)
-import PrelNames  ( rationalTyConName, integerTyConName, negateName )
-import OccName   ( isDataOcc, isTvOcc, occNameString )
--- To avoid clashes with DsMeta.varName we must make a local alias for OccName.varName
--- we do this by removing varName from the import of OccName above, making
--- a qualified instance of OccName and using OccNameAlias.varName where varName
--- ws previously used in this file.
+import Class
+import PrelNames
+import OccName
+-- To avoid clashes with DsMeta.varName we must make a local alias for
+-- OccName.varName we do this by removing varName from the import of
+-- OccName above, making a qualified instance of OccName and using
+-- OccNameAlias.varName where varName ws previously used in this file.
 import qualified OccName
 
 import qualified OccName
 
-import Module    ( Module, mkModule, moduleNameString, moduleName,
-                    modulePackageId, mkModuleNameFS )
-import Id         ( Id, mkLocalId )
-import OccName   ( mkOccNameFS )
-import Name       ( Name, mkExternalName, localiseName, nameOccName, nameModule, 
-                   isExternalName, getSrcLoc )
+import Module
+import Id
+import OccName
+import Name
 import NameEnv
 import NameEnv
-import Type       ( Type, mkTyConApp )
-import TcType    ( tcTyConAppArgs )
-import TyCon     ( tyConName )
-import TysWiredIn ( parrTyCon )
+import Type
+import TcType
+import TyCon
+import TysWiredIn
 import CoreSyn
 import CoreSyn
-import CoreUtils  ( exprType )
-import SrcLoc    ( noSrcLoc, unLoc, Located(..), SrcSpan, srcLocSpan )
-import PackageConfig ( thPackageId, packageIdString )
-import Unique    ( mkPreludeTyConUnique, mkPreludeMiscIdUnique, getKey, Uniquable(..) )
-import BasicTypes ( isBoxed ) 
+import CoreUtils
+import SrcLoc
+import PackageConfig
+import Unique
+import BasicTypes
 import Outputable
 import Outputable
-import Bag       ( bagToList, unionManyBags )
-import FastString ( unpackFS )
-import ForeignCall ( Safety(..), CCallConv(..), CCallTarget(..) )
+import Bag
+import FastString
+import ForeignCall
 
 
-import Maybe     ( catMaybes )
-import Monad ( zipWithM )
-import List ( sortBy )
+import Data.Maybe
+import Control.Monad
+import Data.List
  
 -----------------------------------------------------------------------------
 dsBracket :: HsBracket Name -> [PendingSplice] -> DsM CoreExpr
  
 -----------------------------------------------------------------------------
 dsBracket :: HsBracket Name -> [PendingSplice] -> DsM CoreExpr
index 28ff62d..cbe182e 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[DsMonad]{@DsMonad@: monadery used in desugaring}
+
+@DsMonad@: monadery used in desugaring
 
 \begin{code}
 module DsMonad (
 
 \begin{code}
 module DsMonad (
@@ -33,29 +35,28 @@ module DsMonad (
 #include "HsVersions.h"
 
 import TcRnMonad
 #include "HsVersions.h"
 
 import TcRnMonad
-import CoreSyn         ( CoreExpr )
-import HsSyn           ( HsExpr, HsMatchContext, Pat )
-import TcIface         ( tcIfaceGlobal )
-import RdrName         ( GlobalRdrEnv )
-import HscTypes                ( TyThing(..), TypeEnv, HscEnv(..), 
-                         tyThingId, tyThingTyCon, tyThingDataCon, mkPrintUnqualified )
-import Bag             ( emptyBag, snocBag )
-import DataCon         ( DataCon )
-import TyCon           ( TyCon )
-import Id              ( mkSysLocal, setIdUnique, Id )
-import Module          ( Module )
-import Var             ( TyVar, setTyVarUnique )
+import CoreSyn
+import HsSyn
+import TcIface
+import RdrName
+import HscTypes
+import Bag
+import DataCon
+import TyCon
+import Id
+import Module
+import Var
 import Outputable
 import Outputable
-import SrcLoc          ( noSrcSpan, SrcSpan )
-import Type             ( Type )
-import UniqSupply      ( UniqSupply, uniqsFromSupply )
-import Name            ( Name, nameOccName )
+import SrcLoc
+import Type
+import UniqSupply
+import Name
 import NameEnv
 import NameEnv
-import OccName          ( occNameFS )
-import DynFlags        ( DynFlags )
-import ErrUtils                ( Messages, mkWarnMsg, mkErrMsg, 
-                         printErrorsAndWarnings, errorsFound )
-import DATA_IOREF      ( newIORef, readIORef )
+import OccName
+import DynFlags
+import ErrUtils
+
+import Data.IORef
 
 infixr 9 `thenDs`
 \end{code}
 
 infixr 9 `thenDs`
 \end{code}
index e2334f3..0552c2b 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[DsUtils]{Utilities for desugaring}
+
+Utilities for desugaring
 
 This module exports some utility functions of no great interest.
 
 
 This module exports some utility functions of no great interest.
 
@@ -40,44 +42,36 @@ import {-# SOURCE #-}       Match ( matchSimply )
 import {-# SOURCE #-}  DsExpr( dsExpr )
 
 import HsSyn
 import {-# SOURCE #-}  DsExpr( dsExpr )
 
 import HsSyn
-import TcHsSyn         ( hsLPatType, hsPatType )
+import TcHsSyn
 import CoreSyn
 import CoreSyn
-import Constants       ( mAX_TUPLE_SIZE )
+import Constants
 import DsMonad
 
 import DsMonad
 
-import CoreUtils       ( exprType, mkIfThenElse, mkCoerce, bindNonRec )
-import MkId            ( iRREFUT_PAT_ERROR_ID, mkReboxingAlt, unwrapNewTypeBody )
-import Id              ( idType, Id, mkWildId, mkTemplateLocals, mkSysLocal )
-import Var             ( Var )
-import Name            ( Name )
-import Literal         ( Literal(..), mkStringLit, inIntRange, tARGET_MAX_INT )
-import TyCon           ( isNewTyCon, tyConDataCons )
-import DataCon         ( DataCon, dataConSourceArity, dataConTyCon, dataConTag )
-import Type            ( mkFunTy, isUnLiftedType, Type, splitTyConApp, mkTyVarTy,
-                          splitNewTyConApp )
-import Coercion         ( mkUnsafeCoercion )
-import TysPrim         ( intPrimTy )
-import TysWiredIn      ( nilDataCon, consDataCon, 
-                          tupleCon, mkTupleTy,
-                         unitDataConId, unitTy,
-                          charTy, charDataCon, 
-                          intTy, intDataCon, 
-                         isPArrFakeCon )
-import BasicTypes      ( Boxity(..) )
-import UniqSet         ( mkUniqSet, minusUniqSet, isEmptyUniqSet )
-import UniqSupply      ( splitUniqSupply, uniqFromSupply, uniqsFromSupply )
-import PrelNames       ( unpackCStringName, unpackCStringUtf8Name, 
-                         plusIntegerName, timesIntegerName, smallIntegerDataConName, 
-                         lengthPName, indexPName )
+import CoreUtils
+import MkId
+import Id
+import Var
+import Name
+import Literal
+import TyCon
+import DataCon
+import Type
+import Coercion
+import TysPrim
+import TysWiredIn
+import BasicTypes
+import UniqSet
+import UniqSupply
+import PrelNames
 import Outputable
 import Outputable
-import SrcLoc          ( Located(..), unLoc )
-import Util             ( isSingleton, zipEqual, sortWith )
-import ListSetOps      ( assocDefault )
+import SrcLoc
+import Util
+import ListSetOps
 import FastString
 import FastString
-import Data.Char       ( ord )
+import Data.Char
 
 #ifdef DEBUG
 
 #ifdef DEBUG
-import Util            ( notNull )     -- Used in an assertion
+import Util
 #endif
 \end{code}
 
 #endif
 \end{code}
 
index b40bb53..a31494e 100644 (file)
@@ -1,40 +1,40 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[Main_match]{The @match@ function}
+
+The @match@ function
 
 \begin{code}
 module Match ( match, matchEquations, matchWrapper, matchSimply, matchSinglePat ) where
 
 #include "HsVersions.h"
 
 
 \begin{code}
 module Match ( match, matchEquations, matchWrapper, matchSimply, matchSinglePat ) where
 
 #include "HsVersions.h"
 
-import DynFlags        ( DynFlag(..), dopt )
+import DynFlags
 import HsSyn           
 import HsSyn           
-import TcHsSyn         ( mkVanillaTuplePat, hsPatType )
-import Check            ( check, ExhaustivePat )
+import TcHsSyn
+import Check
 import CoreSyn
 import CoreSyn
-import Literal         ( Literal )
-import CoreUtils       ( bindNonRec, exprType )
+import Literal
+import CoreUtils
 import DsMonad
 import DsMonad
-import DsBinds         ( dsLHsBinds, dsCoercion )
-import DsGRHSs         ( dsGRHSs )
+import DsBinds
+import DsGRHSs
 import DsUtils
 import DsUtils
-import Id              ( idName, idType, Id )
-import DataCon         ( DataCon )
-import MatchCon                ( matchConFamily )
-import MatchLit                ( matchLiterals, matchNPlusKPats, matchNPats, 
-                         tidyLitPat, tidyNPat, hsLitKey, hsOverLitKey )
-import PrelInfo                ( pAT_ERROR_ID )
-import TcType          ( Type )
-import Type            ( splitFunTysN, coreEqType )
-import TysWiredIn      ( consDataCon, mkListTy, unitTy,
-                         tupleCon, parrFakeCon, mkPArrTy )
-import BasicTypes      ( Boxity(..) )
-import ListSetOps      ( equivClasses, runs )
-import SrcLoc          ( unLoc, Located(..) )
-import Maybes          ( isJust )
-import Util             ( lengthExceeds, notNull )
-import Name            ( Name )
+import Id
+import DataCon
+import MatchCon
+import MatchLit
+import PrelInfo
+import TcType
+import Type
+import TysWiredIn
+import BasicTypes
+import ListSetOps
+import SrcLoc
+import Maybes
+import Util
+import Name
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index c4c38b1..5233d59 100644 (file)
@@ -1,7 +1,9 @@
-
+%
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[MatchCon]{Pattern-matching constructors}
+
+Pattern-matching constructors
 
 \begin{code}
 module MatchCon ( matchConFamily ) where
 
 \begin{code}
 module MatchCon ( matchConFamily ) where
@@ -10,19 +12,17 @@ module MatchCon ( matchConFamily ) where
 
 import {-# SOURCE #-} Match    ( match )
 
 
 import {-# SOURCE #-} Match    ( match )
 
-import HsSyn           ( Pat(..), LPat, HsConDetails(..), HsRecField(..) )
-import DsBinds         ( dsLHsBinds )
-import DataCon         ( DataCon, dataConInstOrigArgTys, dataConEqSpec,
-                         dataConFieldLabels, dataConSourceArity )
-import TcType          ( tcTyConAppArgs )
-import Type            ( mkTyVarTys )
+import HsSyn
+import DsBinds
+import DataCon
+import TcType
+import Type
 import CoreSyn
 import DsMonad
 import DsUtils
 
 import CoreSyn
 import DsMonad
 import DsUtils
 
-import Id              ( Id, idName )
-import Type             ( Type )
-import SrcLoc          ( unLoc, Located(..) )
+import Id
+import SrcLoc
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 3751f95..d7e8ba6 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[MatchLit]{Pattern-matching literal patterns}
+
+Pattern-matching literal patterns
 
 \begin{code}
 module MatchLit ( dsLit, dsOverLit, hsLitKey, hsOverLitKey,
 
 \begin{code}
 module MatchLit ( dsLit, dsOverLit, hsLitKey, hsOverLitKey,
@@ -17,24 +19,23 @@ import DsMonad
 import DsUtils
 
 import HsSyn
 import DsUtils
 
 import HsSyn
-import Id              ( Id, idType )
+import Id
 import CoreSyn
 import CoreSyn
-import TyCon           ( tyConDataCons )
-import DataCon         ( DataCon )
-import TcType          ( tcSplitTyConApp, isIntegerTy, isIntTy, 
-                         isFloatTy, isDoubleTy, isStringTy )
-import Type            ( Type )
-import PrelNames       ( ratioTyConKey )
-import TysWiredIn      ( stringTy, consDataCon, intDataCon, floatDataCon, doubleDataCon )
-import PrelNames       ( eqStringName )
-import Unique          ( hasKey )
-import Literal         ( mkMachInt, Literal(..) )
-import SrcLoc          ( noLoc )
-import Ratio           ( numerator, denominator )
-import SrcLoc          ( Located(..), unLoc )
+import TyCon
+import DataCon
+import TcType
+import Type
+import PrelNames
+import TysWiredIn
+import PrelNames
+import Unique
+import Literal
+import SrcLoc
+import Ratio
+import SrcLoc
 import Outputable
 import Outputable
-import Util            ( mapAndUnzip )
-import FastString      ( lengthFS, unpackFS )
+import Util
+import FastString
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
diff --git a/compiler/deSugar/deSugar.tex b/compiler/deSugar/deSugar.tex
deleted file mode 100644 (file)
index 02cb285..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-\documentstyle{report}
-\input{lit-style}
-
-\begin{document}
-\centerline{{\Large{deSugar}}}
-\tableofcontents
-
-\input{Desugar}    % {@deSugar@: the main function}
-\input{DsBinds}    % {Pattern-matching bindings (HsBinds and MonoBinds)}
-\input{DsGRHSs}    % {Matching guarded right-hand-sides (GRHSs)}
-\input{DsExpr}     % {Matching expressions (Exprs)}
-\input{DsHsSyn}    % {Haskell abstract syntax---added things for desugarer}
-\input{DsListComp} % {Desugaring list comprehensions}
-\input{DsMonad}    % {@DsMonad@: monadery used in desugaring}
-\input{DsUtils}    % {Utilities for desugaring}
-\input{Check}      % {Module @Check@ in @deSugar@}
-\input{Match}      % {The @match@ function}
-\input{MatchCon}   % {Pattern-matching constructors}
-\input{MatchLit}   % {Pattern-matching literal patterns}
-\input{DsForeign}  % {Desugaring \tr{foreign} declarations}
-\input{DsCCall}    % {Desugaring \tr{_ccall_}s and \tr{_casm_}s}
-
-\end{document} 
index 3e79a39..d47398c 100644 (file)
@@ -1,7 +1,5 @@
-{-% DrIFT (Automatic class derivations for Haskell) v1.1 %-}
-{-% DrIFT (Automatic class derivations for Haskell) v1.1 %-}
 -- 
 -- 
---  (c) The University of Glasgow 2002
+--  (c) The University of Glasgow 2002-2006
 -- 
 -- Binary interface file support.
 
 -- 
 -- Binary interface file support.
 
@@ -9,45 +7,38 @@ module BinIface ( writeBinIface, readBinIface, v_IgnoreHiWay ) where
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import TcRnMonad        ( TcRnIf, ioToIOEnv )
+import TcRnMonad
 import IfaceEnv
 import HscTypes
 import BasicTypes
 import NewDemand
 import IfaceSyn
 import IfaceEnv
 import HscTypes
 import BasicTypes
 import NewDemand
 import IfaceSyn
-import Module           ( ModuleName, mkModule, modulePackageId, moduleName )
+import Module
 import Name
 import Name
-import OccName          ( OccName )
+import OccName
 import VarEnv
 import VarEnv
-import InstEnv         ( OverlapFlag(..) )
-import Class           ( DefMeth(..) )
-import DynFlags         ( DynFlags )
-import UniqFM           ( UniqFM, eltsUFM )
-import UniqSupply       ( uniqFromSupply, splitUniqSupply )
+import InstEnv
+import Class
+import DynFlags
+import UniqFM
+import UniqSupply
 import CostCentre
 import CostCentre
-import StaticFlags     ( opt_HiVersion, v_Build_tag )
-import Type            ( Kind,
-                          isLiftedTypeKind, isUnliftedTypeKind, isOpenTypeKind,
-                         isArgTypeKind, isUbxTupleKind, liftedTypeKind,
-                         unliftedTypeKind, openTypeKind, argTypeKind,  
-                         ubxTupleKind, mkArrowKind, splitFunTy_maybe )
-import PackageConfig    ( PackageId )
+import StaticFlags
+import PackageConfig
 import Panic
 import Binary
 import Panic
 import Binary
-import SrcLoc           ( noSrcLoc )
+import SrcLoc
 import Util
 import Util
-import ErrUtils         ( debugTraceMsg )
-import Config          ( cGhcUnregisterised )
-import FastMutInt       ( readFastMutInt )
-
-import Data.Word        ( Word32 )
-import Data.Array       ( Array, array, elems, listArray, (!) )
-import DATA_IOREF
-import EXCEPTION       ( throwDyn )
-import Monad           ( when )
+import ErrUtils
+import Config
+import FastMutInt
 import Outputable
 
 import Outputable
 
-#include "HsVersions.h"
+import Data.Word
+import Data.Array
+import Data.IORef
+import Control.Exception
+import Control.Monad
 
 -- ---------------------------------------------------------------------------
 -- Reading and writing binary interface files
 
 -- ---------------------------------------------------------------------------
 -- Reading and writing binary interface files
index dfa8ba2..75d7234 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 
@@ -12,38 +13,24 @@ module BuildTyCl (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import IfaceEnv                ( newImplicitBinder )
+import IfaceEnv
 import TcRnMonad
 
 import TcRnMonad
 
-import DataCon         ( DataCon, isNullarySrcDataCon, 
-                         mkDataCon, dataConFieldLabels, dataConInstOrigArgTys )
-import Var             ( tyVarKind, TyVar, Id )
-import VarSet          ( isEmptyVarSet, intersectVarSet, elemVarSet )
-import TysWiredIn      ( unitTy )
-import BasicTypes      ( RecFlag, StrictnessMark(..) )
-import Name            ( Name )
-import OccName         ( mkDataConWrapperOcc, mkDataConWorkerOcc,
-                         mkClassTyConOcc, mkClassDataConOcc,
-                         mkSuperDictSelOcc, mkNewTyCoOcc, 
-                         mkInstTyCoOcc ) 
-import MkId            ( mkDataConIds, mkRecordSelId, mkDictSelId )
-import Class           ( mkClass, Class( classTyCon), FunDep, DefMeth(..) )
-import TyCon           ( mkSynTyCon, mkAlgTyCon, visibleDataCons,
-                         tyConStupidTheta, tyConDataCons, isNewTyCon,
-                         mkClassTyCon, TyCon( tyConTyVars ),
-                         isRecursiveTyCon, AlgTyConRhs(..),
-                         SynTyConRhs(..), newTyConRhs, AlgTyConParent(..) )
-import Type            ( mkArrowKinds, liftedTypeKind, typeKind, 
-                         tyVarsOfType, tyVarsOfTypes, tyVarsOfPred,
-                         splitTyConApp_maybe, splitAppTy_maybe,
-                         getTyVar_maybe, 
-                         mkPredTys, mkTyVarTys, ThetaType, Type, 
-                         TyThing(..), 
-                         substTyWith, zipTopTvSubst, substTheta )
-import Coercion         ( mkNewTypeCoercion, mkDataInstCoercion )
+import DataCon
+import Var
+import VarSet
+import TysWiredIn
+import BasicTypes
+import Name
+import OccName
+import MkId
+import Class
+import TyCon
+import Type
+import Coercion
 import Outputable
 import Outputable
-import List            ( nub )
 
 
+import Data.List
 \end{code}
        
 
 \end{code}
        
 
index fe0b0cd..3c3a34d 100644 (file)
@@ -1,4 +1,4 @@
-(c) The University of Glasgow 2002
+(c) The University of Glasgow 2002-2006
 
 \begin{code}
 module IfaceEnv (
 
 \begin{code}
 module IfaceEnv (
@@ -19,29 +19,21 @@ module IfaceEnv (
 #include "HsVersions.h"
 
 import TcRnMonad
 #include "HsVersions.h"
 
 import TcRnMonad
-import TysWiredIn      ( tupleTyCon, tupleCon )
-import HscTypes                ( NameCache(..), HscEnv(..), GenAvailInfo(..), 
-                         IfaceExport, OrigNameCache, AvailInfo )
-import Type            ( mkOpenTvSubst, substTy )
-import TyCon           ( TyCon, tyConName )
-import DataCon         ( dataConWorkId, dataConName )
-import Var             ( TyVar, Id, varName )
-import Name            ( Name, nameUnique, nameModule,
-                         nameOccName, nameSrcLoc, getOccName,
-                         isWiredInName, mkIPName,
-                         mkExternalName, mkInternalName )
-import NameSet         ( NameSet, emptyNameSet, addListToNameSet )
-import OccName         ( OccName, isTupleOcc_maybe, tcName, dataName, occNameFS,
-                         lookupOccEnv, unitOccEnv, extendOccEnv )
-import PrelNames       ( gHC_PRIM, dATA_TUP )
-import Module          ( Module, emptyModuleEnv, ModuleName, modulePackageId,
-                         lookupModuleEnv, extendModuleEnv_C, mkModule )
-import UniqFM           ( lookupUFM, addListToUFM )
-import FastString       ( FastString )
-import UniqSupply      ( UniqSupply, splitUniqSupply, uniqFromSupply, uniqsFromSupply )
-import FiniteMap       ( emptyFM, lookupFM, addToFM )
-import BasicTypes      ( IPName(..), mapIPName )
-import SrcLoc          ( SrcLoc, noSrcLoc )
+import TysWiredIn
+import HscTypes
+import TyCon
+import DataCon
+import Var
+import Name
+import OccName
+import PrelNames
+import Module
+import UniqFM
+import FastString
+import UniqSupply
+import FiniteMap
+import BasicTypes
+import SrcLoc
 
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
@@ -205,7 +197,7 @@ lookupOrigNameCache nc mod occ
     mk_tup_name (ns, boxity, arity)
        | ns == tcName   = tyConName (tupleTyCon boxity arity)
        | ns == dataName = dataConName (tupleCon boxity arity)
     mk_tup_name (ns, boxity, arity)
        | ns == tcName   = tyConName (tupleTyCon boxity arity)
        | ns == dataName = dataConName (tupleCon boxity arity)
-       | otherwise      = varName (dataConWorkId (tupleCon boxity arity))
+       | otherwise      = Var.varName (dataConWorkId (tupleCon boxity arity))
 
 lookupOrigNameCache nc mod occ -- The normal case
   = case lookupModuleEnv nc mod of
 
 lookupOrigNameCache nc mod occ -- The normal case
   = case lookupModuleEnv nc mod of
@@ -297,12 +289,6 @@ lookupIfaceTop :: OccName -> IfL Name
 lookupIfaceTop occ
   = do { env <- getLclEnv; lookupOrig (if_mod env) occ }
 
 lookupIfaceTop occ
   = do { env <- getLclEnv; lookupOrig (if_mod env) occ }
 
-lookupHomePackage :: ModuleName -> OccName -> IfL Name
-lookupHomePackage mod_name occ
-  = do { env <- getLclEnv; 
-        ; let this_pkg = modulePackageId (if_mod env)
-        ; lookupOrig (mkModule this_pkg mod_name) occ }
-
 newIfaceName :: OccName -> IfL Name
 newIfaceName occ
   = do { uniq <- newUnique
 newIfaceName :: OccName -> IfL Name
 newIfaceName occ
   = do { uniq <- newUnique
index a842608..4f37ca0 100644 (file)
@@ -1,14 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
-%************************************************************************
-%*                                                                     *
-\section[HsCore]{Core-syntax unfoldings in Haskell interface files}
-%*                                                                     *
-%************************************************************************
-
-We could either use this, or parameterise @GenCoreExpr@ on @Types@ and
-@TyVars@ as well.  Currently trying the former... MEGA SIGH.
 
 \begin{code}
 module IfaceSyn (
 
 \begin{code}
 module IfaceSyn (
@@ -35,25 +28,22 @@ module IfaceSyn (
 import CoreSyn
 import IfaceType
 
 import CoreSyn
 import IfaceType
 
-import NewDemand       ( StrictSig, pprIfaceStrictSig )
-import Class           ( FunDep, DefMeth, pprFundeps )
-import OccName
-import UniqFM           ( UniqFM, emptyUFM, addToUFM, lookupUFM )
-import Unique           ( mkBuiltinUnique )
+import NewDemand
+import Class
+import UniqFM
+import Unique
 import NameSet 
 import NameSet 
-import Name            ( Name, NamedThing(..), isExternalName,
-                          mkInternalName )
-import CostCentre      ( CostCentre, pprCostCentreCore )
-import Literal         ( Literal )
-import ForeignCall     ( ForeignCall )
-import SrcLoc           ( noSrcLoc )
+import Name
+import CostCentre
+import Literal
+import ForeignCall
+import SrcLoc
 import BasicTypes
 import Outputable
 import FastString
 import BasicTypes
 import Outputable
 import FastString
-import Maybes          ( catMaybes )
 
 
-import Data.List        ( nub )
-import Data.Maybe       ( isJust )
+import Data.List
+import Data.Maybe
 
 infixl 3 &&&
 infix  4 `eqIfExt`, `eqIfIdInfo`, `eqIfType`
 
 infixl 3 &&&
 infix  4 `eqIfExt`, `eqIfIdInfo`, `eqIfType`
index 64d8892..8af258a 100644 (file)
@@ -1,8 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 
-       This module defines interface types and binders
+This module defines interface types and binders
 
 \begin{code}
 module IfaceType (
 
 \begin{code}
 module IfaceType (
@@ -24,18 +25,14 @@ module IfaceType (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import TypeRep         ( TyThing(..), Type(..), PredType(..), ThetaType,
-                          unliftedTypeKindTyConName, openTypeKindTyConName,
-                          ubxTupleKindTyConName, argTypeKindTyConName,
-                          liftedTypeKindTyConName )
-import TyCon           ( TyCon, isTupleTyCon, tyConArity, tupleTyConBoxity, tyConName )
-import Var             ( isId, tyVarKind, idType )
-import TysWiredIn      ( listTyConName, parrTyConName, tupleTyCon, intTyConName, charTyConName, boolTyConName )
-import OccName         ( OccName, parenSymOcc, occNameFS )
-import Name            ( Name, getName, getOccName, nameModule, nameOccName,
-                         wiredInNameTyThing_maybe )
-import Module          ( Module, ModuleName )
-import BasicTypes      ( IPName(..), Arity, Version, mapIPName, tupleParens, Boxity )
+import TypeRep
+import TyCon
+import Var
+import TysWiredIn
+import OccName
+import Name
+import Module
+import BasicTypes
 import Outputable
 import FastString
 \end{code}
 import Outputable
 import FastString
 \end{code}
index 5b19c89..4ef589d 100644 (file)
@@ -1,7 +1,9 @@
-
+%
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section{Dealing with interface files}
+
+Loading interface files
 
 \begin{code}
 module LoadIface (
 
 \begin{code}
 module LoadIface (
@@ -19,53 +21,39 @@ module LoadIface (
 import {-# SOURCE #-}  TcIface( tcIfaceDecl, tcIfaceRules, tcIfaceInst, 
                                 tcIfaceFamInst )
 
 import {-# SOURCE #-}  TcIface( tcIfaceDecl, tcIfaceRules, tcIfaceInst, 
                                 tcIfaceFamInst )
 
-import DynFlags                ( DynFlags(..), DynFlag( Opt_IgnoreInterfacePragmas ) )
+import DynFlags
 import IfaceSyn
 import IfaceSyn
-import IfaceEnv                ( newGlobalBinder )
-import HscTypes                ( ModIface(..), TyThing, IfaceExport, Usage(..), 
-                         Deprecs(..), Dependencies(..),
-                         emptyModIface, EpsStats(..), GenAvailInfo(..),
-                         addEpsInStats, ExternalPackageState(..),
-                         PackageTypeEnv, emptyTypeEnv,  HscEnv(..),
-                         lookupIfaceByModule, emptyPackageIfaceTable,
-                         IsBootInterface, mkIfaceFixCache, 
-                         implicitTyThings 
-                        )
-
-import BasicTypes      ( Version, initialVersion,
-                         Fixity(..), FixityDirection(..), isMarkedStrict )
+import IfaceEnv
+import HscTypes
+
+import BasicTypes hiding (SuccessFlag(..))
 import TcRnMonad
 import TcRnMonad
-import Type             ( TyThing(..) )
-
-import PrelNames       ( gHC_PRIM )
-import PrelInfo                ( ghcPrimExports )
-import PrelRules       ( builtinRules )
-import Rules           ( extendRuleBaseList, mkRuleBase )
-import InstEnv         ( emptyInstEnv, extendInstEnvList )
-import FamInstEnv      ( emptyFamInstEnv, extendFamInstEnvList )
-import Name            ( Name {-instance NamedThing-}, getOccName,
-                         nameModule, nameIsLocalOrFrom, isWiredInName )
+import Type
+
+import PrelNames
+import PrelInfo
+import PrelRules
+import Rules
+import InstEnv
+import FamInstEnv
+import Name
 import NameEnv
 import NameEnv
-import MkId            ( seqId )
+import MkId
 import Module
 import Module
-import OccName         ( OccName, mkOccEnv, lookupOccEnv, mkClassTyConOcc,
-                         mkClassDataConOcc, mkSuperDictSelOcc,
-                         mkDataConWrapperOcc, mkDataConWorkerOcc,
-                         mkNewTyCoOcc, mkInstTyCoOcc ) 
-import SrcLoc          ( importedSrcLoc )
-import Maybes          ( MaybeErr(..) )
-import ErrUtils         ( Message )
-import Finder          ( findImportedModule, findExactModule,  
-                         FindResult(..), cannotFindInterface )
+import OccName
+import SrcLoc
+import Maybes
+import ErrUtils
+import Finder
 import UniqFM
 import UniqFM
-import StaticFlags     ( opt_HiVersion )
+import StaticFlags
 import Outputable
 import Outputable
-import BinIface                ( readBinIface, v_IgnoreHiWay )
-import Binary
-import Panic           ( ghcError, showException, GhcException(..) )
-import List            ( nub )
-import Maybe            ( isJust )
-import DATA_IOREF      ( writeIORef )
+import BinIface
+import Panic
+
+import Data.List
+import Data.Maybe
+import Data.IORef
 \end{code}
 
 
 \end{code}
 
 
@@ -342,9 +330,6 @@ loadDecl ignore_prags mod (_version, decl)
                          (importedSrcLoc (showSDoc (ppr (moduleName mod))))
                        -- ToDo: qualify with the package name if necessary
 
                          (importedSrcLoc (showSDoc (ppr (moduleName mod))))
                        -- ToDo: qualify with the package name if necessary
 
-    ifFamily (IfaceData {ifFamInst = Just (famTyCon, _)}) = Just famTyCon
-    ifFamily _                                           = Nothing
-
     doc = ptext SLIT("Declaration for") <+> ppr (ifName decl)
 
 bumpDeclStats :: Name -> IfL ()                -- Record that one more declaration has actually been used
     doc = ptext SLIT("Declaration for") <+> ppr (ifName decl)
 
 bumpDeclStats :: Name -> IfL ()                -- Record that one more declaration has actually been used
index e99e8bf..d9c993a 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 
 % (c) The GRASP/AQUA Project, Glasgow University, 1993-1998
 %
 
@@ -175,80 +176,46 @@ compiled with -O.  I think this is the case.]
 \begin{code}
 #include "HsVersions.h"
 
 \begin{code}
 #include "HsVersions.h"
 
-import IfaceSyn                -- All of it
+import IfaceSyn
 import IfaceType
 import IfaceType
-import LoadIface       ( readIface, loadInterface, pprModIface )
-import Id              ( Id, idName, idType, idInfo, idArity, isDataConWorkId_maybe, isFCallId_maybe )
-import IdInfo          ( IdInfo, CafInfo(..), WorkerInfo(..), 
-                         arityInfo, cafInfo, newStrictnessInfo, 
-                         workerInfo, unfoldingInfo, inlinePragInfo )
-import NewDemand       ( isTopSig )
+import LoadIface
+import Id
+import IdInfo
+import NewDemand
 import CoreSyn
 import CoreSyn
-import Class           ( classExtraBigSig, classTyCon )
-import TyCon           ( TyCon, AlgTyConRhs(..), SynTyConRhs(..),
-                         isRecursiveTyCon, isForeignTyCon, 
-                         isSynTyCon, isAlgTyCon, isPrimTyCon, isFunTyCon,
-                         isTupleTyCon, tupleTyConBoxity, tyConStupidTheta,
-                         tyConHasGenerics, synTyConRhs, isGadtSyntaxTyCon,
-                         tyConArity, tyConTyVars, algTyConRhs, tyConExtName,
-                         tyConFamInst_maybe )
-import DataCon         ( dataConName, dataConFieldLabels, dataConStrictMarks,
-                         dataConTyCon, dataConIsInfix, dataConUnivTyVars,
-                         dataConExTyVars, dataConEqSpec, dataConTheta,
-                         dataConOrigArgTys ) 
-import Type            ( TyThing(..), splitForAllTys, funResultTy )
-import TcType          ( deNoteType )
-import TysPrim         ( alphaTyVars )
-import InstEnv         ( Instance(..) )
-import FamInstEnv      ( FamInst(..) )
+import Class
+import TyCon
+import DataCon
+import Type
+import TcType
+import TysPrim
+import InstEnv
+import FamInstEnv
 import TcRnMonad
 import TcRnMonad
-import HscTypes                ( ModIface(..), ModDetails(..), 
-                         ModGuts(..), HscEnv(..), hscEPS, Dependencies(..),
-                         FixItem(..), 
-                         ModSummary(..), msHiFilePath, 
-                         mkIfaceDepCache, mkIfaceFixCache, mkIfaceVerCache,
-                         typeEnvElts,
-                         GenAvailInfo(..), availName, AvailInfo,
-                         ExternalPackageState(..),
-                         Usage(..), IsBootInterface,
-                         Deprecs(..), IfaceDeprecs, Deprecations,
-                         lookupIfaceByModule, isImplicitTyThing
-                       )
-
-
-import DynFlags                ( GhcMode(..), DynFlags(..), DynFlag(..), dopt )
-import Name            ( Name, nameModule, nameModule_maybe, nameOccName,
-                         isExternalName, isInternalName, isWiredInName,
-                         NamedThing(..) )
+import HscTypes
+
+import DynFlags
+import Name
 import NameEnv
 import NameSet
 import NameEnv
 import NameSet
-import OccName         ( OccName, OccEnv, mkOccEnv, lookupOccEnv, emptyOccEnv,
-                         extendOccEnv_C,
-                         OccSet, emptyOccSet, elemOccSet, occSetElts, 
-                         extendOccSet, extendOccSetList, mkOccSet,
-                         isEmptyOccSet, intersectOccSet, intersectsOccSet,
-                          unionOccSets, unitOccSet,
-                         occNameFS, isTcOcc )
+import OccName
 import Module
 import Module
-import BinIface                ( readBinIface, writeBinIface, v_IgnoreHiWay )
-import Unique          ( Unique, Uniquable(..) )
-import ErrUtils                ( dumpIfSet_dyn, showPass )
-import Digraph         ( stronglyConnComp, SCC(..) )
-import SrcLoc          ( SrcSpan )
-import PackageConfig   ( PackageId )
+import BinIface
+import Unique
+import ErrUtils
+import Digraph
+import SrcLoc
+import PackageConfig    hiding ( Version )
 import Outputable
 import BasicTypes       hiding ( SuccessFlag(..) )
 import UniqFM
 import Util             hiding ( eqListBy )
 import FiniteMap
 import FastString
 import Outputable
 import BasicTypes       hiding ( SuccessFlag(..) )
 import UniqFM
 import Util             hiding ( eqListBy )
 import FiniteMap
 import FastString
+import Maybes
 
 
-import Data.List        ( partition )
-import DATA_IOREF      ( writeIORef )
-import Monad           ( when )
-import List            ( insert )
-import Maybes          ( orElse, mapCatMaybes, isNothing, isJust, 
-                         expectJust, catMaybes, MaybeErr(..) )
+import Control.Monad
+import Data.List
 \end{code}
 
 
 \end{code}
 
 
index c16846e..53a9a59 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[TcIfaceSig]{Type checking of type signatures in interface files}
+
+Type checking of type signatures in interface files
 
 \begin{code}
 module TcIface ( 
 
 \begin{code}
 module TcIface ( 
@@ -13,63 +15,45 @@ module TcIface (
 #include "HsVersions.h"
 
 import IfaceSyn
 #include "HsVersions.h"
 
 import IfaceSyn
-import LoadIface       ( loadInterface, loadWiredInHomeIface, findAndReadIface, loadDecls )
-import IfaceEnv                ( lookupIfaceTop, newGlobalBinder, 
-                         extendIfaceIdEnv, extendIfaceTyVarEnv, newIPName,
-                         tcIfaceTyVar, tcIfaceLclId,
-                         newIfaceName, newIfaceNames, ifaceExportNames )
-import BuildTyCl       ( buildSynTyCon, buildAlgTyCon, buildDataCon,
-                         buildClass, 
-                         mkAbstractTyConRhs, mkOpenDataTyConRhs,
-                         mkOpenNewTyConRhs, mkDataTyConRhs, mkNewTyConRhs )
+import LoadIface
+import IfaceEnv
+import BuildTyCl
 import TcRnMonad
 import TcRnMonad
-import Type            ( liftedTypeKind, splitTyConApp, mkTyConApp,
-                          liftedTypeKindTyCon, unliftedTypeKindTyCon, 
-                          openTypeKindTyCon, argTypeKindTyCon, 
-                          ubxTupleKindTyCon, ThetaType )
-import TypeRep         ( Type(..), PredType(..) )
-import TyCon           ( TyCon, tyConName, SynTyConRhs(..), setTyConArgPoss )
-import HscTypes                ( ExternalPackageState(..), 
-                         TyThing(..), tyThingClass, tyThingTyCon, 
-                         ModIface(..), ModDetails(..), HomeModInfo(..),
-                         emptyModDetails, lookupTypeEnv, lookupType,
-                         typeEnvIds )
-import InstEnv         ( Instance(..), mkImportedInstance )
-import FamInstEnv      ( FamInst(..), mkImportedFamInst )
+import Type
+import TypeRep
+import HscTypes
+import InstEnv
+import FamInstEnv
 import CoreSyn
 import CoreSyn
-import CoreUtils       ( exprType, dataConRepFSInstPat )
+import CoreUtils
 import CoreUnfold
 import CoreUnfold
-import CoreLint                ( lintUnfolding )
-import WorkWrap                ( mkWrapper )
-import Id              ( Id, mkVanillaGlobal, mkLocalId )
-import MkId            ( mkFCallId )
-import IdInfo          ( IdInfo, CafInfo(..), WorkerInfo(..), 
-                         setUnfoldingInfoLazily, setAllStrictnessInfo, setWorkerInfo,
-                         setArityInfo, setInlinePragInfo, setCafInfo, 
-                         vanillaIdInfo, newStrictnessInfo )
-import Class           ( Class )
-import TyCon           ( tyConDataCons, isTupleTyCon, mkForeignTyCon )
-import DataCon         ( DataCon, dataConWorkId )
-import TysWiredIn      ( tupleCon, tupleTyCon, listTyCon, intTyCon, boolTyCon, charTyCon, parrTyCon )
-import Var             ( TyVar, mkTyVar )
-import Name            ( Name, nameModule, nameIsLocalOrFrom, isWiredInName,
-                         nameOccName, wiredInNameTyThing_maybe )
+import CoreLint
+import WorkWrap
+import Id
+import MkId
+import IdInfo
+import Class
+import TyCon
+import DataCon
+import TysWiredIn
+import Var              ( TyVar )
+import qualified Var
+import Name
 import NameEnv
 import NameEnv
-import OccName         ( OccName, mkVarOccFS, mkTyVarOcc, occNameSpace, 
-                         pprNameSpace, occNameFS  )
-import Module          ( Module, moduleName )
-import UniqFM          ( lookupUFM )
-import UniqSupply      ( initUs_, uniqsFromSupply )
+import OccName
+import Module
+import UniqFM
+import UniqSupply
 import Outputable      
 import Outputable      
-import ErrUtils                ( Message )
-import Maybes          ( MaybeErr(..) )
-import SrcLoc          ( noSrcLoc )
-import Util            ( zipWithEqual )
-import DynFlags                ( DynFlag(..), isOneShot )
-import Control.Monad   ( unless )
-
-import List            ( elemIndex)
-import Maybe           ( catMaybes )
+import ErrUtils
+import Maybes
+import SrcLoc
+import Util
+import DynFlags
+import Control.Monad
+
+import Data.List
+import Data.Maybe
 \end{code}
 
 This module takes
 \end{code}
 
 This module takes
@@ -1020,14 +1004,14 @@ bindIfaceTyVar (occ,kind) thing_inside
 bindIfaceTyVars :: [IfaceTvBndr] -> ([TyVar] -> IfL a) -> IfL a
 bindIfaceTyVars bndrs thing_inside
   = do { names <- newIfaceNames (map mkTyVarOcc occs)
 bindIfaceTyVars :: [IfaceTvBndr] -> ([TyVar] -> IfL a) -> IfL a
 bindIfaceTyVars bndrs thing_inside
   = do { names <- newIfaceNames (map mkTyVarOcc occs)
-       ; tyvars <- zipWithM mk_iface_tyvar names kinds
+       ; tyvars <- TcRnMonad.zipWithM mk_iface_tyvar names kinds
        ; extendIfaceTyVarEnv tyvars (thing_inside tyvars) }
   where
     (occs,kinds) = unzip bndrs
 
 mk_iface_tyvar :: Name -> IfaceKind -> IfL TyVar
 mk_iface_tyvar name ifKind = do { kind <- tcIfaceType ifKind
        ; extendIfaceTyVarEnv tyvars (thing_inside tyvars) }
   where
     (occs,kinds) = unzip bndrs
 
 mk_iface_tyvar :: Name -> IfaceKind -> IfL TyVar
 mk_iface_tyvar name ifKind = do { kind <- tcIfaceType ifKind
-                                ; return (mkTyVar name kind)
+                                ; return (Var.mkTyVar name kind)
                                 }
 \end{code}
 
                                 }
 \end{code}
 
index 0563f34..31995f0 100644 (file)
@@ -90,9 +90,10 @@ import ParserCoreUtils
 import FastString
 import UniqFM          ( emptyUFM )
 import Bag             ( unitBag )
 import FastString
 import UniqFM          ( emptyUFM )
 import Bag             ( unitBag )
-import Monad           ( unless )
-import IO
-import DATA_IOREF      ( newIORef, readIORef )
+
+import Control.Monad
+import System.IO
+import Data.IORef
 \end{code}
 
 
 \end{code}
 
 
index d3c5f7f..7e30d77 100644 (file)
@@ -103,10 +103,11 @@ import UniqFM             ( lookupUFM, eltsUFM, emptyUFM )
 import UniqSupply      ( UniqSupply )
 import FastString      ( FastString )
 
 import UniqSupply      ( UniqSupply )
 import FastString      ( FastString )
 
-import DATA_IOREF      ( IORef, readIORef )
 import StringBuffer    ( StringBuffer )
 import Maybes           ( catMaybes, seqMaybe )
 import StringBuffer    ( StringBuffer )
 import Maybes           ( catMaybes, seqMaybe )
-import Time            ( ClockTime )
+
+import System.Time     ( ClockTime )
+import Data.IORef      ( IORef, readIORef )
 \end{code}
 
 
 \end{code}
 
 
index dc0ea7e..b95d4d3 100644 (file)
@@ -48,11 +48,12 @@ import Maybes               ( orElse, mapCatMaybes )
 import ErrUtils                ( showPass, dumpIfSet_core )
 import PackageConfig   ( PackageId )
 import UniqSupply      ( splitUniqSupply, uniqFromSupply )
 import ErrUtils                ( showPass, dumpIfSet_core )
 import PackageConfig   ( PackageId )
 import UniqSupply      ( splitUniqSupply, uniqFromSupply )
-import List            ( partition )
-import Maybe           ( isJust )
 import Outputable
 import Outputable
-import DATA_IOREF      ( IORef, readIORef, writeIORef )
 import FastTypes  hiding ( fastOr )
 import FastTypes  hiding ( fastOr )
+
+import Data.List       ( partition )
+import Data.Maybe      ( isJust )
+import Data.IORef      ( IORef, readIORef, writeIORef )
 \end{code}
 
 
 \end{code}
 
 
index c339c76..18fc319 100644 (file)
@@ -92,7 +92,7 @@ import FastString
 
 
 -- FIXME: fro debugging - remove this
 
 
 -- FIXME: fro debugging - remove this
-import TRACE    (trace)
+import Debug.Trace  (trace)
 
 -- standard
 import Monad        (liftM, foldM)
 
 -- standard
 import Monad        (liftM, foldM)
index f7a3198..1a0a39e 100644 (file)
@@ -45,11 +45,11 @@ import Outputable
 import FastString
 import StaticFlags      ( opt_SimplExcessPrecision )
 
 import FastString
 import StaticFlags      ( opt_SimplExcessPrecision )
 
-import DATA_BITS       ( Bits(..) )
+import Data.Bits       ( Bits(..) )
 #if __GLASGOW_HASKELL__ >= 500
 #if __GLASGOW_HASKELL__ >= 500
-import DATA_WORD       ( Word )
+import Data.Word       ( Word )
 #else
 #else
-import DATA_WORD       ( Word64 )
+import Data.Word       ( Word64 )
 #endif
 \end{code}
 
 #endif
 \end{code}
 
index 7a31683..1ec7721 100644 (file)
@@ -7,7 +7,7 @@
 module TysPrim(
        alphaTyVars, betaTyVars, alphaTyVar, betaTyVar, gammaTyVar, deltaTyVar,
        alphaTy, betaTy, gammaTy, deltaTy,
 module TysPrim(
        alphaTyVars, betaTyVars, alphaTyVar, betaTyVar, gammaTyVar, deltaTyVar,
        alphaTy, betaTy, gammaTy, deltaTy,
-       openAlphaTy, openAlphaTyVar, openAlphaTyVars,
+       openAlphaTy, openBetaTy, openAlphaTyVar, openBetaTyVar, openAlphaTyVars,
 
        primTyCons,
 
 
        primTyCons,
 
@@ -167,9 +167,10 @@ alphaTys = mkTyVarTys alphaTyVars
        -- to a lifted or unlifted type variable.  It's used for the 
        -- result type for "error", so that we can have (error Int# "Help")
 openAlphaTyVars :: [TyVar]
        -- to a lifted or unlifted type variable.  It's used for the 
        -- result type for "error", so that we can have (error Int# "Help")
 openAlphaTyVars :: [TyVar]
-openAlphaTyVars@(openAlphaTyVar:_) = tyVarList openTypeKind
+openAlphaTyVars@(openAlphaTyVar:openBetaTyVar:_) = tyVarList openTypeKind
 
 openAlphaTy = mkTyVarTy openAlphaTyVar
 
 openAlphaTy = mkTyVarTy openAlphaTyVar
+openBetaTy   = mkTyVarTy openBetaTyVar
 \end{code}
 
 
 \end{code}
 
 
index bc09e11..5b6ac40 100644 (file)
@@ -41,7 +41,7 @@ import FastString     ( FastString )
 import Outputable
 import FastTypes
 
 import Outputable
 import FastTypes
 
-import GLAEXTS         ( indexArray# )
+import GHC.Exts                ( indexArray# )
 
 #if __GLASGOW_HASKELL__ < 503
 import PrelArr  ( Array(..) )
 
 #if __GLASGOW_HASKELL__ < 503
 import PrelArr  ( Array(..) )
index e38a3b1..3f22633 100644 (file)
@@ -1,4 +1,4 @@
-\section[FamInst]{The @FamInst@ type: family instance heads}
+The @FamInst@ type: family instance heads
 
 \begin{code}
 module FamInst ( 
 
 \begin{code}
 module FamInst ( 
@@ -7,17 +7,13 @@ module FamInst (
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import HscTypes   ( ExternalPackageState(..) )
-import FamInstEnv ( FamInstEnv, FamInst(..), famInstTyCon, extendFamInstEnv,
-                   pprFamInst, pprFamInsts )
-import TcMType   ( tcInstSkolType )
-import TcType    ( SkolemInfo(..), tcSplitTyConApp )
-import TcRnMonad  ( TcM, TcGblEnv(..), setGblEnv, getGblEnv, foldlM,
-                   setSrcSpan, addErr, getEps )
-import TyCon      ( tyConFamInst_maybe )
-import Type      ( mkTyConApp )
-import Name      ( getSrcLoc )
-import SrcLoc    ( mkSrcSpan )
+import HscTypes
+import FamInstEnv
+import TcMType
+import TcType
+import TcRnMonad
+import TyCon
+import Type
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
@@ -81,6 +77,7 @@ addLocalFamInst home_fie famInst
                -- OK, now extend the envt
        ; return (extendFamInstEnv home_fie famInst) }
 
                -- OK, now extend the envt
        ; return (extendFamInstEnv home_fie famInst) }
 
+{-  UNUSED??? --SDM
 overlapErr famInst dupFamInst
   = addFamInstLoc famInst $
     addErr (hang (ptext SLIT("Overlapping family instance declarations:"))
 overlapErr famInst dupFamInst
   = addFamInstLoc famInst $
     addErr (hang (ptext SLIT("Overlapping family instance declarations:"))
@@ -90,4 +87,5 @@ addFamInstLoc famInst thing_inside
   = setSrcSpan (mkSrcSpan loc loc) thing_inside
   where
     loc = getSrcLoc famInst
   = setSrcSpan (mkSrcSpan loc loc) thing_inside
   where
     loc = getSrcLoc famInst
+-}
 \end{code}
 \end{code}
index 3bfde1c..ed5528c 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[Inst]{The @Inst@ type: dictionaries or method instances}
+
+The @Inst@ type: dictionaries or method instances
 
 \begin{code}
 module Inst ( 
 
 \begin{code}
 module Inst ( 
@@ -42,56 +44,35 @@ module Inst (
 import {-# SOURCE #-}  TcExpr( tcPolyExpr )
 import {-# SOURCE #-}  TcUnify( unifyType )
 
 import {-# SOURCE #-}  TcExpr( tcPolyExpr )
 import {-# SOURCE #-}  TcUnify( unifyType )
 
-import HsSyn   ( HsLit(..), HsOverLit(..), HsExpr(..), LHsExpr, mkHsApp,
-                 HsWrapper(..), (<.>), mkWpTyApps, idHsWrapper,
-                 nlHsLit, nlHsVar )
-import TcHsSyn ( zonkId )
+import HsSyn
+import TcHsSyn
 import TcRnMonad
 import TcRnMonad
-import TcEnv   ( tcLookupId, checkWellStaged, topIdLvl, tcMetaTy )
-import InstEnv ( DFunId, InstEnv, Instance(..), OverlapFlag(..),
-                 lookupInstEnv, extendInstEnv, pprInstances, 
-                 instanceHead, instanceDFunId, setInstanceDFunId )
-import FunDeps ( checkFunDeps )
-import TcMType ( zonkTcType, zonkTcTypes, zonkTcPredType, zonkTcThetaType, 
-                 tcInstTyVar, tcInstSkolType
-               )
-import TcType  ( Type, TcType, TcThetaType, TcTyVarSet, TcPredType,
-                 BoxyRhoType,
-                 PredType(..), SkolemInfo(..), typeKind, mkSigmaTy,
-                 tcSplitForAllTys, applyTys, 
-                 tcSplitPhiTy, tcSplitDFunHead,
-                 isIntTy,isFloatTy, isIntegerTy, isDoubleTy,
-                 mkPredTy, mkTyVarTys,
-                 tyVarsOfType, tyVarsOfTypes, tyVarsOfPred, tidyPred,
-                 isClassPred, isTyVarClassPred, 
-                 getClassPredTys, mkPredName,
-                 isInheritablePred, isIPPred, 
-                 tidyType, tidyTypes, tidyFreeTyVars, tcSplitSigmaTy, 
-                 pprPred, pprParendType, pprTheta 
-               )
-import Type    ( TvSubst, substTy, substTyVar, substTyWith,
-                 notElemTvSubst, extendTvSubstList )
-import Unify   ( tcMatchTys )
-import Module  ( modulePackageId )
-import {- Kind parts of -} Type        ( isSubKind )
-import Coercion ( isEqPred )
-import HscTypes        ( ExternalPackageState(..), HscEnv(..) )
-import CoreFVs ( idFreeTyVars )
-import DataCon ( dataConWrapId )
-import Id      ( Id, idName, idType, mkUserLocal, mkLocalId, isId )
-import Name    ( Name, mkMethodOcc, getOccName, getSrcLoc, nameModule,
-                 isInternalName, setNameUnique )
-import NameSet ( addOneToNameSet )
-import Literal ( inIntRange )
-import Var     ( Var, TyVar, tyVarKind, setIdType, isId, mkTyVar )
-import VarEnv  ( TidyEnv, emptyTidyEnv )
-import VarSet  ( elemVarSet, emptyVarSet, unionVarSet, mkVarSet )
-import TysWiredIn ( floatDataCon, doubleDataCon )
-import PrelNames       ( integerTyConName, fromIntegerName, fromRationalName, rationalTyConName )
-import BasicTypes( IPName(..), mapIPName, ipNameName )
-import SrcLoc  ( mkSrcSpan, noLoc, unLoc, Located(..) )
-import DynFlags        ( DynFlag(..), DynFlags(..), dopt )
-import Maybes  ( isJust )
+import TcEnv
+import InstEnv
+import FunDeps
+import TcMType
+import TcType
+import Type
+import Unify
+import Module
+import Coercion
+import HscTypes
+import CoreFVs
+import DataCon
+import Id
+import Name
+import NameSet
+import Literal
+import Var      ( Var, TyVar )
+import qualified Var
+import VarEnv
+import VarSet
+import TysWiredIn
+import PrelNames
+import BasicTypes
+import SrcLoc
+import DynFlags
+import Maybes
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
@@ -111,7 +92,7 @@ instToVar :: Inst -> Var
 instToVar (LitInst nm _ ty _) = mkLocalId nm ty
 instToVar (Method id _ _ _ _) = id
 instToVar (Dict nm pred _)    
 instToVar (LitInst nm _ ty _) = mkLocalId nm ty
 instToVar (Method id _ _ _ _) = id
 instToVar (Dict nm pred _)    
-  | isEqPred pred = mkTyVar nm (mkPredTy pred)
+  | isEqPred pred = Var.mkTyVar nm (mkPredTy pred)
   | otherwise    = mkLocalId nm (mkPredTy pred)
 
 instLoc (Dict _ _       loc) = loc
   | otherwise    = mkLocalId nm (mkPredTy pred)
 
 instLoc (Dict _ _       loc) = loc
@@ -337,12 +318,12 @@ checkKind :: TyVar -> TcType -> TcM ()
 checkKind tv ty
   = do { let ty1 = ty 
                -- ty1 <- zonkTcType ty
 checkKind tv ty
   = do { let ty1 = ty 
                -- ty1 <- zonkTcType ty
-       ; if typeKind ty1 `isSubKind` tyVarKind tv
+       ; if typeKind ty1 `isSubKind` Var.tyVarKind tv
          then return ()
          else 
 
     pprPanic "checkKind: adding kind constraint" 
          then return ()
          else 
 
     pprPanic "checkKind: adding kind constraint" 
-            (vcat [ppr tv <+> ppr (tyVarKind tv), 
+            (vcat [ppr tv <+> ppr (Var.tyVarKind tv), 
                    ppr ty <+> ppr ty1 <+> ppr (typeKind ty1)])
        }
 --    do       { tv1 <- tcInstTyVar tv
                    ppr ty <+> ppr ty1 <+> ppr (typeKind ty1)])
        }
 --    do       { tv1 <- tcInstTyVar tv
index b53b5ea..57cb48c 100644 (file)
@@ -1,7 +1,8 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section{Typecheck arrow notation}
+Typecheck arrow notation
 
 \begin{code}
 module TcArrows ( tcProc ) where
 
 \begin{code}
 module TcArrows ( tcProc ) where
@@ -11,32 +12,28 @@ module TcArrows ( tcProc ) where
 import {-# SOURCE #-}  TcExpr( tcMonoExpr, tcInferRho )
 
 import HsSyn
 import {-# SOURCE #-}  TcExpr( tcMonoExpr, tcInferRho )
 
 import HsSyn
-import TcHsSyn (  mkHsDictLet )
-
-import TcMatches ( matchCtxt, tcStmts, tcMDoStmt, tcGuardStmt,
-                  TcMatchCtxt(..), tcMatchesCase )
-
-import TcType  ( TcType, TcTauType, BoxyRhoType, mkFunTys, mkTyConApp,
-                 mkTyVarTy, mkAppTys, tcSplitTyConApp_maybe, tcEqType, 
-                 SkolemInfo(..) )
-import TcMType ( newFlexiTyVarTy, tcInstSkolTyVars, zonkTcType )
-import TcBinds ( tcLocalBinds )
-import TcSimplify ( tcSimplifyCheck )
-import TcGadt  ( Refinement, emptyRefinement, refineResType )
-import TcPat   ( tcLamPat, tcLamPats )
-import TcUnify ( checkSigTyVarsWrt, boxySplitAppTy )
+import TcHsSyn
+
+import TcMatches
+
+import TcType
+import TcMType
+import TcBinds
+import TcSimplify
+import TcGadt
+import TcPat
+import TcUnify
 import TcRnMonad
 import TcRnMonad
-import Inst    ( tcSyntaxName )
-import Name    ( Name )
-import TysWiredIn ( boolTy, pairTyCon )
+import Inst
+import Name
+import TysWiredIn
 import VarSet 
 import VarSet 
-import TysPrim ( alphaTyVar )
-import Type    ( Kind, mkArrowKinds, liftedTypeKind, openTypeKind, tyVarsOfTypes )
+import TysPrim
+import Type
 
 
-import SrcLoc  ( Located(..), noLoc, unLoc )
+import SrcLoc
 import Outputable
 import Outputable
-import Util    ( lengthAtLeast )
-
+import Util
 \end{code}
 
 %************************************************************************
 \end{code}
 
 %************************************************************************
index a3b17a6..9983267 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[TcBinds]{TcBinds}
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 \section[TcBinds]{TcBinds}
@@ -15,56 +16,36 @@ module TcBinds ( tcLocalBinds, tcTopBinds,
 import {-# SOURCE #-} TcMatches ( tcGRHSsPat, tcMatchesFun )
 import {-# SOURCE #-} TcExpr  ( tcMonoExpr )
 
 import {-# SOURCE #-} TcMatches ( tcGRHSsPat, tcMatchesFun )
 import {-# SOURCE #-} TcExpr  ( tcMonoExpr )
 
-import DynFlags                ( dopt, DynFlags,
-                         DynFlag(Opt_MonomorphismRestriction, Opt_MonoPatBinds, Opt_GlasgowExts) )
-import HsSyn           ( HsExpr(..), HsBind(..), LHsBinds, LHsBind, Sig(..),
-                         HsLocalBinds(..), HsValBinds(..), HsIPBinds(..),
-                         LSig, Match(..), IPBind(..), Prag(..), LHsType,
-                         isVanillaLSig, sigName, placeHolderNames, isPragLSig,
-                         LPat, GRHSs, MatchGroup(..), pprLHsBinds, mkHsWrap, hsExplicitTvs,
-                         collectHsBindBinders, collectPatBinders, pprPatBind, isBangHsBind
-                       )
-import TcHsSyn         ( zonkId )
+import DynFlags
+import HsSyn
+import TcHsSyn
 
 import TcRnMonad
 
 import TcRnMonad
-import Inst            ( newDictBndrs, newIPDict, instToId )
-import TcEnv           ( tcExtendIdEnv, tcExtendIdEnv2, tcExtendTyVarEnv2, 
-                         pprBinders, tcLookupId,
-                         tcGetGlobalTyVars )
-import TcUnify         ( tcInfer, tcSubExp, unifyTheta, 
-                         bleatEscapedTvs, sigCtxt )
-import TcSimplify      ( tcSimplifyInfer, tcSimplifyInferCheck, 
-                         tcSimplifyRestricted, tcSimplifyIPs )
-import TcHsType                ( tcHsSigType, UserTypeCtxt(..) )
-import TcPat           ( tcLetPat )
-import TcSimplify      ( bindInstsOfLocalFuns )
-import TcMType         ( newFlexiTyVarTy, zonkQuantifiedTyVar, zonkSigTyVar,
-                         tcInstSigTyVars, tcInstSkolTyVars, tcInstType, 
-                         zonkTcType, zonkTcTypes, zonkTcTyVar )
-import TcType          ( TcType, TcTyVar, TcThetaType, 
-                         SkolemInfo(SigSkol), UserTypeCtxt(FunSigCtxt), 
-                         TcTauType, TcSigmaType, isUnboxedTupleType,
-                         mkTyVarTy, mkForAllTys, mkFunTys, exactTyVarsOfType, 
-                         mkForAllTy, isUnLiftedType, tcGetTyVar, 
-                         mkTyVarTys, tidyOpenTyVar )
-import {- Kind parts of -} Type                ( argTypeKind )
-import VarEnv          ( TyVarEnv, emptyVarEnv, lookupVarEnv, extendVarEnv ) 
-import TysPrim         ( alphaTyVar )
-import Id              ( Id, mkLocalId, mkVanillaGlobal )
-import IdInfo          ( vanillaIdInfo )
-import Var             ( TyVar, idType, idName )
-import Name            ( Name )
+import Inst
+import TcEnv
+import TcUnify
+import TcSimplify
+import TcHsType
+import TcPat
+import TcMType
+import TcType
+import {- Kind parts of -} Type
+import VarEnv
+import TysPrim
+import Id
+import IdInfo
+import Var ( TyVar )
+import Name
 import NameSet
 import NameEnv
 import VarSet
 import NameSet
 import NameEnv
 import VarSet
-import SrcLoc          ( Located(..), unLoc, getLoc )
+import SrcLoc
 import Bag
 import Bag
-import ErrUtils                ( Message )
-import Digraph         ( SCC(..), stronglyConnComp )
-import Maybes          ( expectJust, isJust, isNothing, orElse )
-import Util            ( singleton )
-import BasicTypes      ( TopLevelFlag(..), isTopLevel, isNotTopLevel,
-                         RecFlag(..), isNonRec, InlineSpec, defaultInlineSpec )
+import ErrUtils
+import Digraph
+import Maybes
+import Util
+import BasicTypes
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 9d0fb13..30dfc7c 100644 (file)
@@ -1,7 +1,9 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[TcClassDcl]{Typechecking class declarations}
+
+Typechecking class declarations
 
 \begin{code}
 module TcClassDcl ( tcClassSigs, tcClassDecl2, 
 
 \begin{code}
 module TcClassDcl ( tcClassSigs, tcClassDecl2, 
@@ -13,60 +15,47 @@ module TcClassDcl ( tcClassSigs, tcClassDecl2,
 #include "HsVersions.h"
 
 import HsSyn
 #include "HsVersions.h"
 
 import HsSyn
-import RnHsSyn         ( maybeGenericMatch, extractHsTyVars )
-import RnExpr          ( rnLExpr )
-import RnEnv           ( lookupTopBndrRn, lookupImportedName )
-import Inst            ( instToId, newDictBndr, newDictBndrs, newMethod, getOverlapFlag )
-import InstEnv         ( mkLocalInstance )
-import TcEnv           ( tcLookupLocatedClass, 
-                         tcExtendTyVarEnv, tcExtendIdEnv,
-                         InstInfo(..), pprInstInfoDetails,
-                         simpleInstInfoTyCon, simpleInstInfoTy,
-                         InstBindings(..), newDFunName
-                       )
-import TcBinds         ( TcPragFun, tcMonoBinds, tcPrags, mkPragFun, TcSigInfo(..), 
-                         TcSigFun, mkTcSigFun )
-import TcHsType                ( tcHsKindedType, tcHsSigType )
-import TcSimplify      ( tcSimplifyCheck )
-import TcUnify         ( checkSigTyVars, sigCtxt )
-import TcMType         ( tcSkolSigTyVars )
-import TcType          ( Type, SkolemInfo(ClsSkol, InstSkol), UserTypeCtxt( GenPatCtxt ),
-                         TcType, TcThetaType, TcTyVar, mkTyVarTys,
-                         mkClassPred, tcSplitSigmaTy, tcSplitFunTys,
-                         tcIsTyVarTy, tcSplitTyConApp_maybe, tcSplitForAllTys, tcSplitPhiTy,
-                         getClassPredTys_maybe, mkPhiTy, mkTyVarTy
-                       )
+import RnHsSyn
+import RnExpr
+import RnEnv
+import Inst
+import InstEnv
+import TcEnv
+import TcBinds
+import TcHsType
+import TcSimplify
+import TcUnify
+import TcMType
+import TcType
 import TcRnMonad
 import TcRnMonad
-import Generics                ( mkGenericRhs, validGenericInstanceType )
-import PrelInfo                ( nO_METHOD_BINDING_ERROR_ID )
-import Class           ( classTyVars, classBigSig, 
-                         Class, ClassOpItem, DefMeth (..) )
-import TyCon           ( TyCon, tyConName, tyConHasGenerics )
-import Type            ( substTyWith )
-import MkId            ( mkDefaultMethodId, mkDictFunId )
-import Id              ( Id, idType, idName, mkUserLocal )
-import Name            ( Name, NamedThing(..) )
-import NameEnv         ( NameEnv, lookupNameEnv, mkNameEnv )
-import NameSet         ( nameSetToList )
-import OccName         ( reportIfUnused, mkDefaultMethodOcc )
-import RdrName         ( RdrName, mkDerivedRdrName )
+import Generics
+import PrelInfo
+import Class
+import TyCon
+import Type
+import MkId
+import Id
+import Name
+import NameEnv
+import NameSet
+import OccName
+import RdrName
 import Outputable
 import Outputable
-import PrelNames       ( genericTyConNames )
+import PrelNames
 import DynFlags
 import DynFlags
-import ErrUtils                ( dumpIfSet_dyn )
-import Util            ( count, lengthIs, isSingleton, lengthExceeds )
-import Unique          ( Uniquable(..) )
-import ListSetOps      ( equivClassesByUniq, minusList )
-import SrcLoc          ( Located(..), srcSpanStart, unLoc, noLoc )
-import Maybes          ( seqMaybe, isJust, mapCatMaybes )
-import List            ( partition )
-import BasicTypes      ( RecFlag(..), Boxity(..) )
+import ErrUtils
+import Util
+import Unique
+import ListSetOps
+import SrcLoc
+import Maybes
+import List
+import BasicTypes
 import Bag
 import FastString
 \end{code}
 
 
 import Bag
 import FastString
 \end{code}
 
 
-
 Dictionary handling
 ~~~~~~~~~~~~~~~~~~~
 Every class implicitly declares a new data type, corresponding to dictionaries
 Dictionary handling
 ~~~~~~~~~~~~~~~~~~~
 Every class implicitly declares a new data type, corresponding to dictionaries
index 6c9de36..0011215 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1993-1998
 %
 \section[TcDefaults]{Typechecking \tr{default} declarations}
 % (c) The AQUA Project, Glasgow University, 1993-1998
 %
 \section[TcDefaults]{Typechecking \tr{default} declarations}
@@ -8,15 +9,15 @@ module TcDefaults ( tcDefaults ) where
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import HsSyn           ( DefaultDecl(..), LDefaultDecl )
-import Name            ( Name )
+import HsSyn
+import Name
 import TcRnMonad
 import TcRnMonad
-import TcEnv           ( tcLookupClass )
-import TcHsType                ( tcHsSigType, UserTypeCtxt( DefaultDeclCtxt ) )
-import TcSimplify      ( tcSimplifyDefault )
-import TcType           ( Type, mkClassPred, isTauTy )
-import PrelNames       ( numClassName )
-import SrcLoc          ( Located(..) )
+import TcEnv
+import TcHsType
+import TcSimplify
+import TcType
+import PrelNames
+import SrcLoc
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 776199f..68c5173 100644 (file)
@@ -1,7 +1,7 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
 %
-\section[TcDeriv]{Deriving}
 
 Handles @deriving@ clauses on @data@ declarations.
 
 
 Handles @deriving@ clauses on @data@ declarations.
 
@@ -11,49 +11,39 @@ module TcDeriv ( tcDeriving ) where
 #include "HsVersions.h"
 
 import HsSyn
 #include "HsVersions.h"
 
 import HsSyn
-import DynFlags        ( DynFlag(..) )
+import DynFlags
 
 
-import Generics                ( mkTyConGenericBinds )
+import Generics
 import TcRnMonad
 import TcRnMonad
-import TcMType         ( checkValidInstance )
-import TcEnv           ( newDFunName, pprInstInfoDetails, 
-                         InstInfo(..), InstBindings(..), simpleInstInfoClsTy,
-                         tcLookupClass, tcLookupTyCon, tcLookupLocatedTyCon, tcExtendTyVarEnv
-                       )
+import TcMType
+import TcEnv
 import TcGenDeriv      -- Deriv stuff
 import TcGenDeriv      -- Deriv stuff
-import InstEnv         ( Instance, OverlapFlag, mkLocalInstance, instanceHead, extendInstEnvList )
-import Inst            ( getOverlapFlag )
-import TcHsType                ( tcHsDeriv )
-import TcSimplify      ( tcSimplifyDeriv )
-import TypeRep          ( PredType )
-
-import RnBinds         ( rnMethodBinds, rnTopBinds )
-import RnEnv           ( bindLocalNames )
-import HscTypes                ( FixityEnv )
-
-import Class           ( className, classArity, classKey, classTyVars, classSCTheta, Class )
-import Type            ( zipOpenTvSubst, substTheta, pprThetaArrow, pprClassPred, mkTyVarTy )
-import ErrUtils                ( dumpIfSet_dyn )
-import MkId            ( mkDictFunId )
-import DataCon         ( isNullarySrcDataCon, isVanillaDataCon, dataConInstOrigArgTys )
-import Maybes          ( catMaybes )
-import RdrName         ( RdrName )
-import Name            ( Name, getSrcLoc )
-import NameSet         ( duDefs )
-import Type            ( splitKindFunTys )
-import TyCon           ( tyConTyVars, tyConDataCons, tyConArity, tyConHasGenerics,
-                         tyConStupidTheta, isProductTyCon, isDataTyCon, isNewTyCon, newTyConRhs,
-                         isEnumerationTyCon, isRecursiveTyCon, TyCon
-                       )
-import TcType          ( TcType, ThetaType, mkTyVarTys, mkTyConApp, tcTyConAppTyCon,
-                         isUnLiftedType, mkClassPred, tyVarsOfType, tyVarsOfTypes,
-                         isSubArgTypeKind, tcEqTypes, tcSplitAppTys, mkAppTys )
-import Var             ( TyVar, tyVarKind, varName )
-import VarSet          ( mkVarSet, disjointVarSet )
+import InstEnv
+import Inst
+import TcHsType
+import TcSimplify
+
+import RnBinds
+import RnEnv
+import HscTypes
+
+import Class
+import Type
+import ErrUtils
+import MkId
+import DataCon
+import Maybes
+import RdrName
+import Name
+import NameSet
+import TyCon
+import TcType
+import Var
+import VarSet
 import PrelNames
 import PrelNames
-import SrcLoc          ( SrcSpan, srcLocSpan, Located(..), unLoc )
-import Util            ( zipWithEqual, sortLe, notNull )
-import ListSetOps      ( removeDups,  assocMaybe )
+import SrcLoc
+import Util
+import ListSetOps
 import Outputable
 import Bag
 \end{code}
 import Outputable
 import Bag
 \end{code}
@@ -876,7 +866,7 @@ genInst spec
        -- It's a bit yukky that we return *renamed* InstInfo, but
        -- *non-renamed* auxiliary bindings
        ; (rn_meth_binds, _fvs) <- discardWarnings $ 
        -- It's a bit yukky that we return *renamed* InstInfo, but
        -- *non-renamed* auxiliary bindings
        ; (rn_meth_binds, _fvs) <- discardWarnings $ 
-                                  bindLocalNames (map varName tyvars)  $
+                                  bindLocalNames (map Var.varName tyvars) $
                                   rnMethodBinds clas_nm (\n -> []) [] meth_binds
 
        -- Build the InstInfo
                                   rnMethodBinds clas_nm (\n -> []) [] meth_binds
 
        -- Build the InstInfo
index 59d60eb..c638c04 100644 (file)
@@ -1,3 +1,7 @@
+%
+% (c) The University of Glasgow 2006
+%
+
 \begin{code}
 module TcEnv(
        TyThing(..), TcTyThing(..), TcId,
 \begin{code}
 module TcEnv(
        TyThing(..), TcTyThing(..), TcId,
@@ -43,36 +47,29 @@ module TcEnv(
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import HsSyn           ( LRuleDecl, LHsBinds, LSig, 
-                         LHsTyVarBndr, HsTyVarBndr(..), pprLHsBinds,
-                         idHsWrapper, (<.>) )
-import TcIface         ( tcImportDecl )
-import IfaceEnv                ( newGlobalBinder )
+import HsSyn
+import TcIface
+import IfaceEnv
 import TcRnMonad
 import TcRnMonad
-import TcMType         ( zonkTcType, zonkTcTyVarsAndFV )
-import TcType          ( Type, TcKind, TcTyVar, TcTyVarSet, TcType, PredType,
-                         tyVarsOfType, tcTyVarsOfTypes, mkTyConApp,
-                         getDFunTyKey, tcTyConAppTyCon, tcGetTyVar, mkTyVarTy,
-                         tidyOpenType, isRefineableTy
-                       )
-import TcGadt          ( Refinement, refineType )
-import qualified Type  ( getTyVar_maybe )
-import Id              ( idName, isLocalId )
-import Var             ( TyVar, Id, idType, tyVarName )
+import TcMType
+import TcType
+import TcGadt
+import qualified Type
+import Id
+import Var
 import VarSet
 import VarEnv
 import VarSet
 import VarEnv
-import RdrName         ( extendLocalRdrEnv )
-import InstEnv         ( Instance, DFunId, instanceDFunId, instanceHead )
-import DataCon         ( DataCon )
-import TyCon           ( TyCon )
-import Class           ( Class )
-import Name            ( Name, NamedThing(..), getSrcLoc, nameModule_maybe, nameOccName )
-import PrelNames       ( thFAKE )
+import RdrName
+import InstEnv
+import DataCon
+import TyCon
+import Class
+import Name
+import PrelNames
 import NameEnv
 import NameEnv
-import OccName         ( mkDFunOcc, occNameString, mkInstTyTcOcc )
-import HscTypes                ( extendTypeEnvList, lookupType, TyThing(..),
-                         ExternalPackageState(..) )
-import SrcLoc          ( SrcLoc, Located(..) )
+import OccName
+import HscTypes
+import SrcLoc
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index 3272dea..e6d75e3 100644 (file)
@@ -1,3 +1,7 @@
+%
+% (c) The University of Glasgow 2006
+%
+
 \begin{code}
 module TcRnMonad(
        module TcRnMonad,
 \begin{code}
 module TcRnMonad(
        module TcRnMonad,
@@ -11,58 +15,48 @@ import TcRnTypes    -- Re-export all
 import IOEnv           -- Re-export all
 
 #if defined(GHCI) && defined(BREAKPOINT)
 import IOEnv           -- Re-export all
 
 #if defined(GHCI) && defined(BREAKPOINT)
-import TypeRep          ( Type(..), liftedTypeKind )
-import Var              ( mkTyVar, mkGlobalId )
-import IdInfo           ( GlobalIdDetails(..), vanillaIdInfo )
-import OccName          ( mkOccName, tvName )
-import SrcLoc           ( noSrcLoc  )
-import TysWiredIn       ( intTy, stringTy, mkListTy, unitTy, boolTy )
-import PrelNames        ( breakpointJumpName, breakpointCondJumpName )
-import NameEnv          ( mkNameEnv )
-import TcEnv            ( tcExtendIdEnv )
+import TypeRep
+import Var
+import IdInfo
+import OccName
+import SrcLoc
+import TysWiredIn
+import PrelNames
+import NameEnv
+import TcEnv
 #endif
 
 #endif
 
-import HsSyn           ( emptyLHsBinds, HaddockModInfo(..) )
-import HscTypes                ( HscEnv(..), ModGuts(..), ModIface(..),
-                         TypeEnv, emptyTypeEnv, HscSource(..), isHsBoot,
-                         ExternalPackageState(..), HomePackageTable,
-                         Deprecs(..), FixityEnv, FixItem, 
-                         mkPrintUnqualified )
-import Module          ( Module, moduleName )
-import RdrName         ( GlobalRdrEnv, LocalRdrEnv, emptyLocalRdrEnv )
-import Name            ( Name, mkInternalName, tidyNameOcc, nameOccName, getSrcLoc )
-import Type            ( Type )
-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, 
-                         mkWarnMsg, printErrorsAndWarnings,
-                         mkLocMessage, mkLongErrMsg )
-import SrcLoc          ( mkGeneralSrcSpan, isGoodSrcSpan, SrcSpan, Located(..) )
-import NameEnv         ( emptyNameEnv )
-import NameSet         ( NameSet, emptyDUs, emptyNameSet, unionNameSets, addOneToNameSet )
-import OccName         ( emptyOccEnv, tidyOccName )
-import Bag             ( emptyBag )
+import HsSyn hiding (LIE)
+import HscTypes
+import Module
+import RdrName
+import Name
+import TcType
+import InstEnv
+import FamInstEnv
+
+import Var
+import Id
+import VarSet
+import VarEnv
+import ErrUtils
+import SrcLoc
+import NameEnv
+import NameSet
+import OccName
+import Bag
 import Outputable
 import Outputable
-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 )
+import UniqSupply
+import UniqFM
+import Unique
+import DynFlags
+import StaticFlags
+import FastString
+import Panic
  
  
-import IO              ( stderr )
-import DATA_IOREF      ( newIORef, readIORef )
-import EXCEPTION       ( Exception )
+import System.IO
+import Data.IORef
+import Control.Exception
 \end{code}
 
 
 \end{code}
 
 
index 7d4ebfa..04602ac 100644 (file)
@@ -1,4 +1,5 @@
 %
 %
+% (c) The University of Glasgow 2006
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1999
 %
 
 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1999
 %
 
@@ -16,25 +17,22 @@ module TcTyDecls(
 
 #include "HsVersions.h"
 
 
 #include "HsVersions.h"
 
-import TypeRep          ( Type(..), TyNote(..), PredType(..) )  -- friend
-import HsSyn           ( TyClDecl(..), HsPred(..), LTyClDecl, isClassDecl )
-import RnHsSyn         ( extractHsTyNames )
-import Type            ( predTypeRep, tcView )
-import HscTypes                ( TyThing(..), ModDetails(..), availsToNameSet )
-import TyCon            ( TyCon, tyConArity, tyConDataCons, tyConTyVars,
-                          isSynTyCon, isAlgTyCon, 
-                         tyConName, isNewTyCon, isProductTyCon, newTyConRhs,
-                         isOpenTyCon )
-import Class           ( classTyCon )
-import DataCon          ( dataConOrigArgTys )
-import Var              ( TyVar )
+import TypeRep
+import HsSyn
+import RnHsSyn
+import Type
+import HscTypes
+import TyCon
+import Class
+import DataCon
+import Var
 import VarSet
 import VarSet
-import Name            ( Name, isTyVarName )
+import Name
 import NameEnv
 import NameSet
 import NameEnv
 import NameSet
-import Digraph                 ( SCC(..), stronglyConnComp, stronglyConnCompR )
-import BasicTypes      ( RecFlag(..) )
-import SrcLoc          ( Located(..), unLoc )
+import Digraph
+import BasicTypes
+import SrcLoc
 import Outputable
 \end{code}
 
 import Outputable
 \end{code}
 
index cd4c4c7..cb1c68b 100644 (file)
@@ -131,44 +131,7 @@ module TcType (
 -- friends:
 import TypeRep         ( Type(..), funTyCon, Kind )  -- friend
 
 -- friends:
 import TypeRep         ( Type(..), funTyCon, Kind )  -- friend
 
-import Type            (       -- Re-exports
-                         tyVarsOfType, tyVarsOfTypes, tyVarsOfPred,
-                         tyVarsOfTheta, Kind, PredType(..), KindVar,
-                         ThetaType, isUnliftedTypeKind, unliftedTypeKind, 
-                         argTypeKind,
-                         liftedTypeKind, openTypeKind, mkArrowKind,
-                         tySuperKind, isLiftedTypeKind,
-                         mkArrowKinds, mkForAllTy, mkForAllTys,
-                         defaultKind, isSubArgTypeKind, isSubOpenTypeKind,
-                         mkFunTy, mkFunTys, zipFunTys, 
-                         mkTyConApp, mkAppTy,
-                         mkAppTys, applyTy, applyTys,
-                         mkTyVarTy, mkTyVarTys, mkTyConTy, mkPredTy,
-                         mkPredTys, isUnLiftedType, 
-                         isUnboxedTupleType, isPrimitiveType,
-                         splitTyConApp_maybe,
-                         tidyTopType, tidyType, tidyPred, tidyTypes,
-                         tidyFreeTyVars, tidyOpenType, tidyOpenTypes,
-                         tidyTyVarBndr, tidyOpenTyVar,
-                         tidyOpenTyVars, tidyKind,
-                         isSubKind, tcView,
-
-                         tcEqType, tcEqTypes, tcCmpType, tcCmpTypes, 
-                         tcEqPred, tcCmpPred, tcEqTypeX, eqKind,
-
-                         TvSubst(..),
-                         TvSubstEnv, emptyTvSubst, mkTvSubst, zipTyEnv,
-                         mkOpenTvSubst, zipOpenTvSubst, zipTopTvSubst, mkTopTvSubst,
-                         getTvSubstEnv, setTvSubstEnv, getTvInScope, extendTvInScope,
-                         extendTvSubst, extendTvSubstList, isInScope, notElemTvSubst,
-                         substTy, substTys, substTyWith, substTheta, 
-                         substTyVar, substTyVarBndr, substPred, lookupTyVar,
-
-                         typeKind, repType, coreView, repSplitAppTy_maybe,
-                         pprKind, pprParendKind,
-                         pprType, pprParendType, pprTyThingCategory,
-                         pprPred, pprTheta, pprThetaArrow, pprClassPred
-                       )
+import Type
 import TyCon           ( TyCon, isUnLiftedTyCon, isSynTyCon, isOpenTyCon,
                          synTyConDefn, tyConUnique )    
 import DataCon         ( DataCon, dataConStupidTheta, dataConResTys )
 import TyCon           ( TyCon, isUnLiftedTyCon, isSynTyCon, isOpenTyCon,
                          synTyConDefn, tyConUnique )    
 import DataCon         ( DataCon, dataConStupidTheta, dataConResTys )
@@ -193,7 +156,8 @@ import Maybes               ( maybeToBool, expectJust, mapCatMaybes )
 import ListSetOps      ( hasNoDups )
 import List            ( nubBy )
 import Outputable
 import ListSetOps      ( hasNoDups )
 import List            ( nubBy )
 import Outputable
-import DATA_IOREF
+
+import Data.IORef
 \end{code}
 
 
 \end{code}
 
 
@@ -864,10 +828,6 @@ getClassPredTys :: PredType -> (Class, [Type])
 getClassPredTys (ClassP clas tys) = (clas, tys)
 getClassPredTys other = panic "getClassPredTys"
 
 getClassPredTys (ClassP clas tys) = (clas, tys)
 getClassPredTys other = panic "getClassPredTys"
 
-isEqPred :: PredType -> Bool
-isEqPred (EqPred {}) = True
-isEqPred _          = False
-
 mkDictTy :: Class -> [Type] -> Type
 mkDictTy clas tys = mkPredTy (ClassP clas tys)
 
 mkDictTy :: Class -> [Type] -> Type
 mkDictTy clas tys = mkPredTy (ClassP clas tys)