-import Type ( typeKind, tyVarsOfType, tyVarsOfTypes, tyVarsOfTheta, mkTyVarTys,
- TvSubstEnv, emptyTvSubstEnv, TvSubst(..), substTy, tcEqTypeX,
- mkOpenTvSubst, tcView, isSubKind, eqKind, repSplitAppTy_maybe )
-import TypeRep ( Type(..), PredType(..), funTyCon )
-import DataCon ( DataCon, dataConResTys )
-import Util ( snocView )
-import ErrUtils ( Message )