-import Type ( Type(..), TyNote(..), Kind, ThetaType, UsageAnn(..),
- splitDictTy_maybe,
- splitForAllTys, splitSigmaTy, splitRhoTy,
- isDictTy, splitTyConApp_maybe, splitFunTy_maybe,
- boxedTypeKind
- )
-import Var ( TyVar, tyVarKind,
- tyVarName, setTyVarName
- )
-import VarEnv
-import TyCon ( TyCon, isPrimTyCon, isTupleTyCon, isUnboxedTupleTyCon,
- maybeTyConSingleCon, isEnumerationTyCon,
- tyConArity, tyConUnique
- )
+import TypeRep ( Type(..), TyNote(..), Kind ) -- friend
+import Type ( SourceType(..) )
+import TcType ( ThetaType, PredType, TyThing(..),
+ tcSplitSigmaTy, isPredTy, isDictTy,
+ tcSplitTyConApp_maybe, tcSplitFunTy_maybe
+ )
+import Var ( TyVar, tyVarKind )