- Notes on module dependencies
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Module dependency information is now given in the GHC commentary
-The Name/Var/Type group is a bit complicated. Here's the deal
-Things in brackets are what the module *uses*.
-A 'loop' indicates a use from a module compiled later
-
- Name, PrimRep
-then
- PrelNames
-then
- Var (Name, loop IdInfo.IdInfo,
- loop Type.Type, loop Type.Kind)
-then
- VarEnv, VarSet, ThinAir
-then
- Class (loop TyCon.TyCon, loop Type.Type)
-then
- TyCon (loop Type.Type, loop Type.Kind, loop DataCon.DataCon, loop Generics.GenInfo)
-then
- Type (loop DataCon.DataCon, loop Subst.substTy)
-then
- FieldLabel( Type), TysPrim (Type), PprEnv (loop DataCon.DataCon, Type)
-then
- Unify, PprType (PprEnv)
-then
- Literal (TysPrim, PprType), DataCon (loop PprType)
-then
- TysWiredIn (DataCon.mkDataCon, loop MkId.mkDataConId, loop Generics.mkGenInfo)
-then
- TcType( lots of TysWiredIn stuff)
-then
- PprType( lots of TcType stuff )
-then
- PrimOp (PprType, TysWiredIn)
-then
- CoreSyn [does not import Id]
-then
- IdInfo (CoreSyn.Unfolding, CoreSyn.CoreRules)
-then
- Id (lots from IdInfo)
-then
- CoreFVs, PprCore
-then
- CoreUtils (PprCore.pprCoreExpr, CoreFVs.exprFreeVars,
- CoreSyn.isEvaldUnfolding CoreSyn.maybeUnfoldingTemplate)
-then
- CoreLint( CoreUtils )
- OccurAnal (CoreUtils.exprIsTrivial)
- CoreTidy (CoreUtils.exprArity )
-then
- CoreUnfold (OccurAnal.occurAnalyseGlobalExpr)
-then
- Subst (CoreUnfold.Unfolding, CoreFVs)
- Generics (CoreUnfold.mkTopUnfolding)
-then
- Rules (CoreUnfold.Unfolding, PprCore.pprTidyIdRules)
-then
- MkId (CoreUnfold.mkUnfolding, Subst, Rules.addRule)
-then
- PrelInfo (MkId)
- HscTypes( Rules.RuleBase )
-
----------------- END OF INFRASTRUCTURE --------------------
-
-then
- CoreTidy (HscTypes.PersistentCompilerState)
+ ghc/docs/comm/genesis/modules.html