-newDictsAtLoc inst_loc theta
- = newUniqueSupply `thenM` \ us ->
- returnM (zipWith (mkDict inst_loc) (uniqsFromSupply us) theta)
-
-mkDict inst_loc uniq pred
- = Dict name pred inst_loc
- where
- name = mkPredName uniq (instLocSrcLoc inst_loc) pred
+newDictsAtLoc inst_loc theta = mapM (newDictAtLoc inst_loc) theta
+
+{-
+newDictOcc :: InstLoc -> TcPredType -> TcM Inst
+newDictOcc inst_loc (EqPred ty1 ty2)
+ = do { unifyType ty1 ty2 -- We insist that they unify right away
+ ; return ty1 } -- And return the relexive coercion
+-}
+newDictAtLoc inst_loc pred
+ = do { uniq <- newUnique
+ ; let name = mkPredName uniq (instLocSrcLoc inst_loc) pred
+ ; return (Dict name pred inst_loc) }