-import HsSyn ( HsDecl(..), RuleDecl(..), RuleBndr(..), HsTyVar(..) )
-import HsCore ( UfRuleBody(..) )
-import RnHsSyn ( RenamedHsDecl )
-import TcHsSyn ( TypecheckedRuleDecl, mkHsLet )
-import TcMonad
-import TcSimplify ( tcSimplifyToDicts, tcSimplifyAndCheck )
-import TcType ( zonkTcTypes, newTyVarTy_OpenKind )
-import TcIfaceSig ( tcCoreExpr, tcCoreLamBndrs, tcVar )
-import TcMonoType ( tcHsType, tcHsTyVar, checkSigTyVars )
-import TcExpr ( tcExpr )
-import TcEnv ( tcExtendLocalValEnv, newLocalId,
- tcExtendTyVarEnv
- )
-import Inst ( LIE, emptyLIE, plusLIEs, instToId )
-import Id ( idType, idName, mkVanillaId )
-import VarSet
-import Type ( tyVarsOfTypes )
-import Bag ( bagToList )
+import HsSyn ( RuleDecl(..), LRuleDecl, RuleBndr(..), collectRuleBndrSigTys, mkHsLet )
+import TcRnMonad
+import TcSimplify ( tcSimplifyToDicts, tcSimplifyInferCheck )
+import TcMType ( newTyVarTy )
+import TcType ( tyVarsOfTypes, openTypeKind )
+import TcHsType ( tcHsSigType, UserTypeCtxt(..), tcAddScopedTyVars )
+import TcExpr ( tcCheckRho )
+import TcEnv ( tcExtendLocalValEnv )
+import Inst ( instToId )
+import Id ( idType, mkLocalId )
+import Name ( Name )
+import SrcLoc ( noLoc, unLoc )