+ dtrace (text "dict = " <+> ppr dict) $ return ()
+
+ -- Build the type of the dictionary function.
+ pa_tc <- builtin paTyCon
+ let pa_opitems = [(id, NoDefMeth) | id <- method_ids]
+ let pa_cls = mkClass
+ (tyConName pa_tc)
+ tvs -- tyvars of class
+ [] -- fundeps
+ [] -- superclass predicates
+ [] -- superclass dict selectors
+ [] -- associated type families
+ pa_opitems -- class op items
+ pa_tc -- dictionary type constructor
+
+ let dfun_ty = mkForAllTys tvs
+ $ mkFunTys (map varType args) (PredTy $ ClassP pa_cls [inst_ty])