+ -- We number them off, 1, 2, 3 etc so that we can construct
+ -- names for the selectors. Thus
+ -- class (C a, C b) => D a b where ...
+ -- gives superclass selectors
+ -- D_sc1, D_sc2
+ -- (We used to call them D_C, but now we can have two different
+ -- superclasses both called C!)
+ mapTc mk_super_id (sc_theta `zip` [1..]) `thenTc` \ sc_sel_ids ->