[project @ 2001-07-19 09:26:08 by simonpj]
authorsimonpj <unknown>
Thu, 19 Jul 2001 09:26:09 +0000 (09:26 +0000)
committersimonpj <unknown>
Thu, 19 Jul 2001 09:26:09 +0000 (09:26 +0000)
Move eqListBy to Util, and use it

ghc/compiler/hsSyn/HsCore.lhs
ghc/compiler/hsSyn/HsDecls.lhs
ghc/compiler/hsSyn/HsTypes.lhs
ghc/compiler/utils/Util.lhs

index dd1d718..83dbd8b 100644 (file)
@@ -26,7 +26,7 @@ module HsCore (
 -- friends:
 import HsTypes         ( HsType, pprParendHsType, pprHsTyVarBndr, toHsType,
                          HsTupCon(..), EqHsEnv, hsTupParens,
-                         emptyEqHsEnv, extendEqHsEnv, eqListBy, 
+                         emptyEqHsEnv, extendEqHsEnv,
                          eq_hsType, eq_hsVars
                        )
 
@@ -48,6 +48,7 @@ import Type           ( Kind, eqKind )
 import BasicTypes      ( Arity )
 import FiniteMap       ( lookupFM )
 import CostCentre
+import Util            ( eqListBy )
 import Outputable
 \end{code}
 
index ebf82a7..e305963 100644 (file)
@@ -42,6 +42,7 @@ import FunDeps                ( pprFundeps )
 import Class           ( FunDep, DefMeth(..) )
 import CStrings                ( CLabelString )
 import Outputable      
+import Util            ( eqListBy )
 import SrcLoc          ( SrcLoc )
 import FastString
 \end{code}
index b6f2a8d..af66087 100644 (file)
@@ -46,6 +46,7 @@ import PrelNames      ( mkTupConRdrName, listTyConKey, usOnceTyConKey, usManyTyConKey
                          usOnceTyConName, usManyTyConName
                        )
 import FiniteMap
+import Util            ( eqListBy )
 import Outputable
 \end{code}
 
@@ -470,10 +471,4 @@ eq_hsPred env (HsClassP c1 tys1) (HsClassP c2 tys2)
 eq_hsPred env (HsIParam n1 ty1) (HsIParam n2 ty2)
   = n1 == n2 && eq_hsType env ty1 ty2
 eq_hsPred env _ _ = False
-
--------------------
-eqListBy :: (a->a->Bool) -> [a] -> [a] -> Bool
-eqListBy eq []     []     = True
-eqListBy eq (x:xs) (y:ys) = eq x y && eqListBy eq xs ys
-eqListBy eq xs     ys     = False
 \end{code}
index 423ab3f..b1c93a8 100644 (file)
@@ -41,7 +41,7 @@ module Util (
        foldl2, count,
 
        -- comparisons
-       thenCmp, cmpList, prefixMatch, suffixMatch,
+       eqListBy, thenCmp, cmpList, prefixMatch, suffixMatch,
 
        -- strictness
        foldl', seqList,
@@ -639,6 +639,11 @@ count p (x:xs) | p x       = 1 + count p xs
 %************************************************************************
 
 \begin{code}
+eqListBy :: (a->a->Bool) -> [a] -> [a] -> Bool
+eqListBy eq []     []     = True
+eqListBy eq (x:xs) (y:ys) = eq x y && eqListBy eq xs ys
+eqListBy eq xs     ys     = False
+
 thenCmp :: Ordering -> Ordering -> Ordering
 {-# INLINE thenCmp #-}
 thenCmp EQ   any = any