Re-factor mkAtomicArgs and completeNonRecX
[ghc-hetmet.git] / compiler / utils / Util.lhs
index e692ff1..8cd9e54 100644 (file)
@@ -12,7 +12,10 @@ module Util (
        mapFst, mapSnd,
        mapAndUnzip, mapAndUnzip3,
        nOfThem, filterOut,
-       lengthExceeds, lengthIs, lengthAtLeast, listLengthCmp, atLength,
+
+       lengthExceeds, lengthIs, lengthAtLeast, 
+       listLengthCmp, atLength, equalLength, compareLength,
+
        isSingleton, only, singleton,
        notNull, snocView,
 
@@ -34,7 +37,7 @@ module Util (
        takeList, dropList, splitAtList, split,
 
        -- comparisons
-       isEqual, eqListBy, equalLength, compareLength,
+       isEqual, eqListBy, 
        thenCmp, cmpList, prefixMatch, suffixMatch, maybePrefixMatch,
        removeSpaces,
 
@@ -300,6 +303,18 @@ listLengthCmp = atLength atLen atEnd
   atLen []     = EQ
   atLen _      = GT
 
+equalLength :: [a] -> [b] -> Bool
+equalLength [] []         = True
+equalLength (_:xs) (_:ys) = equalLength xs ys
+equalLength xs    ys      = False
+
+compareLength :: [a] -> [b] -> Ordering
+compareLength [] []         = EQ
+compareLength (_:xs) (_:ys) = compareLength xs ys
+compareLength [] _ys        = LT
+compareLength _xs []        = GT
+
+----------------------------
 singleton :: a -> [a]
 singleton x = [x]
 
@@ -645,17 +660,6 @@ eqListBy eq []     []     = True
 eqListBy eq (x:xs) (y:ys) = eq x y && eqListBy eq xs ys
 eqListBy eq xs     ys     = False
 
-equalLength :: [a] -> [b] -> Bool
-equalLength [] []         = True
-equalLength (_:xs) (_:ys) = equalLength xs ys
-equalLength xs    ys      = False
-
-compareLength :: [a] -> [b] -> Ordering
-compareLength [] []         = EQ
-compareLength (_:xs) (_:ys) = compareLength xs ys
-compareLength [] _ys        = LT
-compareLength _xs []        = GT
-
 cmpList :: (a -> a -> Ordering) -> [a] -> [a] -> Ordering
     -- `cmpList' uses a user-specified comparer