+ where
+ -- Gruesome; bring into scope the correct members of the generic type variables
+ -- See comments in RnSource.rnSourceDecl(ClassDecl)
+ rn_match match@(Match _ (TypePatIn ty : _) _ _)
+ = extendTyVarEnvFVRn gen_tvs (rnMatch match)
+ where
+ tvs = map rdrNameOcc (extractHsTyRdrNames ty)
+ gen_tvs = [tv | tv <- gen_tyvars, nameOccName tv `elem` tvs]
+
+ rn_match match = rnMatch match
+