Things in brackets are what the module *uses*.
A 'loop' indicates a use from a module compiled later
- PrelNames
-then
Name, PrimRep, FieldLabel (loop Type.Type)
then
+ PrelNames
+then
Var (Name, loop CoreSyn.CoreExpr, loop IdInfo.IdInfo,
loop Type.GenType, loop Type.Kind)
then
then
Class (loop TyCon.TyCon, loop Type.Type)
then
- TyCon (loop Type.Type, loop Type.Kind, loop DataCon.DataCon)
+ TyCon (loop Type.Type, loop Type.Kind, loop DataCon.DataCon, loop Generics.GenInfo)
then
Type (loop DataCon.DataCon, loop Subst.substTy)
then
then
Literal (TysPrim, PprType), DataCon
then
- TysWiredIn (DataCon.mkDataCon, loop MkId.mkDataConId)
+ TysWiredIn (DataCon.mkDataCon, loop MkId.mkDataConId, loop Generics.mkGenInfo)
then
PrimOp (PprType, TysWiredIn)
then
then
CoreUnfold (OccurAnal.occurAnalyseGlobalExpr)
then
- Rules (Unfolding), Subst (Unfolding, CoreFVs), CoreTidy (noUnfolding)
+ Rules (Unfolding), Subst (Unfolding, CoreFVs), CoreTidy (noUnfolding), Generics (mkTopUnfolding)
then
MkId (CoreUnfold.mkUnfolding, Subst)
then