import HsSyn ( HsExpr(..) )
-import TcHsSyn ( TypecheckedHsExpr, TcPat, mkHsLet,
+import TcHsSyn ( mkHsLet,
ExprCoFn, idCoercion, isIdCoercion, mkCoercion, (<.>), (<$>) )
import TypeRep ( Type(..), SourceType(..), TyNote(..), openKindCon )
eqKind, openTypeKind, liftedTypeKind, isTypeKind, mkArrowKind,
hasMoreBoxityInfo, allDistinctTyVars
)
-import qualified Type ( getTyVar_maybe )
import Inst ( newDicts, instToId, tcInstCall )
import TcMType ( getTcTyVar, putTcTyVar, tcInstType, readHoleResult, newKindVar,
newTyVarTy, newTyVarTys, newOpenTypeKind, newHoleTyVarTy,
import ErrUtils ( Message )
import BasicTypes ( Boxity, Arity, isBoxed )
import Util ( equalLength, notNull )
-import Maybe ( isNothing )
import Outputable
\end{code}