+
+ rn_inst_info (InstInfo { iSpec = inst, iBinds = NewTypeDerived })
+ = return (InstInfo { iSpec = inst, iBinds = NewTypeDerived })
+
+ rn_inst_info (InstInfo { iSpec = inst, iBinds = VanillaInst binds sigs })
+ = -- Bring the right type variables into
+ -- scope (yuk), and rename the method binds
+ ASSERT( null sigs )
+ bindLocalNames (map Var.varName tyvars) $
+ do { (rn_binds, _fvs) <- rnMethodBinds clas_nm (\_ -> []) [] binds
+ ; return (InstInfo { iSpec = inst, iBinds = VanillaInst rn_binds [] }) }
+ where
+ (tyvars,_,clas,_) = instanceHead inst
+ clas_nm = className clas
+