<p><li>
TyCon (loop Type.Type, loop Type.Kind, loop DataCon.DataCon, loop Generics.GenInfo)
<p><li>
- Type (loop DataCon.DataCon, loop Subst.substTy)
+ TypeRep (loop DataCon.DataCon, loop Subst.substTyWith)
<p><li>
- FieldLabel( Type) <br>
- TysPrim(Type) <br>
- PprEnv (loop DataCon.DataCon, Type)
+ Type (loop PprType.pprType, loop Subst.substTyWith)
<p><li>
- Unify <br>
- PprType (PprEnv)
+ FieldLabel(Type) <br>
+ TysPrim(Type) <br>
<p><li>
Literal (TysPrim, PprType) <br>
- DataCon (loop PprType)
+ DataCon (loop PprType, loop Subst.substTyWith, FieldLabel.FieldLabel)
<p><li>
- TysWiredIn (DataCon.mkDataCon, loop MkId.mkDataConId, loop Generics.mkGenInfo)
+ TysWiredIn (loop MkId.mkDataConWorkId, loop Generics.mkGenInfo, DataCon.mkDataCon)
<p><li>
TcType( lots of TysWiredIn stuff)
<p><li>