[project @ 2003-10-21 13:14:12 by simonpj]
authorsimonpj <unknown>
Tue, 21 Oct 2003 13:14:12 +0000 (13:14 +0000)
committersimonpj <unknown>
Tue, 21 Oct 2003 13:14:12 +0000 (13:14 +0000)
Wibbles

ghc/compiler/typecheck/Inst.lhs

index c07f806..11d41a4 100644 (file)
@@ -563,12 +563,15 @@ checkNewInst dflags ies dfun
                Nothing    -> return ()
 
                -- Check for duplicate instance decls
-       ; mappM_ (dupInstErr dfun) dup_dfuns }
+       ; case dup_dfuns of
+           dup_dfun : _ -> dupInstErr dfun dup_dfun
+           []           -> return ()
+       }
   where
     (tvs, _, cls, tys) = tcSplitDFunTy (idType dfun)
     (matches, _) = lookupInstEnv dflags ies cls tys
-    dup_dfuns = [dfun | (_, (_, dup_tys, dup_dfun)) <- matches,
-                       isJust (matchTys (mkVarSet tvs) tys dup_tys)]
+    dup_dfuns = [dup_dfun | (_, (_, dup_tys, dup_dfun)) <- matches,
+                           isJust (matchTys (mkVarSet tvs) tys dup_tys)]
        -- Find memebers of the match list which 
        -- dfun itself matches. If the match is 2-way, it's a duplicate