Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/882e439b80110917b83aaaae3cf88fdb4ef3bd6a

>---------------------------------------------------------------

commit 882e439b80110917b83aaaae3cf88fdb4ef3bd6a
Author: Simon Peyton Jones <[email protected]>
Date:   Wed Aug 3 16:18:53 2011 +0100

    Simplify TcSMonad.matchFam's interface

>---------------------------------------------------------------

 compiler/typecheck/TcInteract.lhs |    8 +++-----
 compiler/typecheck/TcSMonad.lhs   |   13 ++-----------
 2 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/compiler/typecheck/TcInteract.lhs 
b/compiler/typecheck/TcInteract.lhs
index 457715f..96d452a 100644
--- a/compiler/typecheck/TcInteract.lhs
+++ b/compiler/typecheck/TcInteract.lhs
@@ -1827,10 +1827,10 @@ doTopReact _inerts (CFunEqCan { cc_flavor = fl })
 doTopReact _inerts workItem@(CFunEqCan { cc_id = cv, cc_flavor = fl
                                        , cc_fun = tc, cc_tyargs = args, cc_rhs 
= xi })
   = ASSERT (isSynFamilyTyCon tc)   -- No associated data families have reached 
that far 
-    do { match_res <- matchFam tc args -- See Note [MATCHING-SYNONYMS]
+    do { match_res <- matchFam tc args   -- See Note [MATCHING-SYNONYMS]
        ; case match_res of 
-           MatchInstNo -> return NoTopInt 
-           MatchInstSingle (rep_tc, rep_tys)
+           Nothing -> return NoTopInt 
+           Just (rep_tc, rep_tys)
              -> do { let Just coe_tc = tyConFamilyCoercion_maybe rep_tc
                          Just rhs_ty = tcView (mkTyConApp rep_tc rep_tys)
                            -- Eagerly expand away the type synonym on the
@@ -1864,8 +1864,6 @@ doTopReact _inerts workItem@(CFunEqCan { cc_id = cv, 
cc_flavor = fl
                                                      , tir_new_inert = Stop }
                                         }
                    }
-           _ 
-             -> panicTcS $ text "TcSMonad.matchFam returned multiple 
instances!"
        }
 
 
diff --git a/compiler/typecheck/TcSMonad.lhs b/compiler/typecheck/TcSMonad.lhs
index 39f3c4b..f444adc 100644
--- a/compiler/typecheck/TcSMonad.lhs
+++ b/compiler/typecheck/TcSMonad.lhs
@@ -941,15 +941,6 @@ matchClass clas tys
        }
         }
 
-matchFam :: TyCon
-         -> [Type] 
-         -> TcS (MatchInstResult (TyCon, [Type]))
-matchFam tycon args
-  = do { mb <- wrapTcS $ TcM.tcLookupFamInst tycon args
-       ; case mb of 
-           Nothing  -> return MatchInstNo 
-           Just res -> return $ MatchInstSingle res
-       -- DV: We never return MatchInstMany, since tcLookupFamInst never 
returns 
-       -- multiple matches. Check. 
-       }
+matchFam :: TyCon -> [Type] -> TcS (Maybe (TyCon, [Type]))
+matchFam tycon args = wrapTcS $ TcM.tcLookupFamInst tycon args
 \end{code}



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to