- ; dicts <- newDicts origin theta
- ; uniqs <- newUniqueSupply
- ; let (rep_dict_id:sc_dict_ids) = map instToId dicts
+ ; dicts <- newDictBndrs inst_loc theta
+ ; uniqs <- newUniqueSupply
+ ; let (cls, cls_inst_tys) = tcSplitDFunHead inst_head
+ ; this_dict <- newDictBndr inst_loc (mkClassPred cls rep_tys)
+ ; let (rep_dict_id:sc_dict_ids)
+ | null dicts = [instToId this_dict]
+ | otherwise = map instToId dicts
+