[commit: packages/containers] develop-0.6-questionable: Added fixity declarations for member, notMember, union, and intersection. (de85ae9)

git at git.haskell.org git at git.haskell.org
Sun Dec 20 16:23:02 UTC 2015


Repository : ssh://git@git.haskell.org/containers

On branch  : develop-0.6-questionable
Link       : http://git.haskell.org/packages/containers.git/commitdiff/de85ae9eccb84284873d419c899743a85bd4e66a

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

commit de85ae9eccb84284873d419c899743a85bd4e66a
Author: Peter Selinger <selinger at mathstat.dal.ca>
Date:   Fri Jul 4 10:31:20 2014 -0300

    Added fixity declarations for member, notMember, union, and intersection.
    
    Milan Straka: It is quite unlikely that this ever gets merged, as it can
    cause build failures (it broke the testing suite for example) and offers
    in my opinion little benefit.


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

de85ae9eccb84284873d419c899743a85bd4e66a
 Data/IntMap/Base.hs | 8 ++++++++
 Data/IntSet/Base.hs | 7 +++++++
 Data/Map/Base.hs    | 8 ++++++++
 Data/Set/Base.hs    | 8 ++++++++
 4 files changed, 31 insertions(+)

diff --git a/Data/IntMap/Base.hs b/Data/IntMap/Base.hs
index d5fd75a..2a912d9 100644
--- a/Data/IntMap/Base.hs
+++ b/Data/IntMap/Base.hs
@@ -451,6 +451,8 @@ member k = k `seq` go
     go (Tip kx _) = k == kx
     go Nil = False
 
+infix 4 member
+
 -- | /O(min(n,W))/. Is the key not a member of the map?
 --
 -- > notMember 5 (fromList [(5,'a'), (3,'b')]) == False
@@ -459,6 +461,8 @@ member k = k `seq` go
 notMember :: Key -> IntMap a -> Bool
 notMember k m = not $ member k m
 
+infix 4 notMember
+
 -- | /O(min(n,W))/. Lookup the value at a key in the map. See also 'Data.Map.lookup'.
 
 -- See Note: Local 'go' functions and capturing]
@@ -874,6 +878,8 @@ union :: IntMap a -> IntMap a -> IntMap a
 union m1 m2
   = mergeWithKey' Bin const id id m1 m2
 
+infixl 5 union
+
 -- | /O(n+m)/. The union with a combining function.
 --
 -- > unionWith (++) (fromList [(5, "a"), (3, "b")]) (fromList [(5, "A"), (7, "C")]) == fromList [(3, "b"), (5, "aA"), (7, "C")]
@@ -937,6 +943,8 @@ intersection :: IntMap a -> IntMap b -> IntMap a
 intersection m1 m2
   = mergeWithKey' bin const (const Nil) (const Nil) m1 m2
 
+infixl 5 intersection
+
 -- | /O(n+m)/. The intersection with a combining function.
 --
 -- > intersectionWith (++) (fromList [(5, "a"), (3, "b")]) (fromList [(5, "A"), (7, "C")]) == singleton 5 "aA"
diff --git a/Data/IntSet/Base.hs b/Data/IntSet/Base.hs
index 6333eea..f2dfb90 100644
--- a/Data/IntSet/Base.hs
+++ b/Data/IntSet/Base.hs
@@ -321,10 +321,14 @@ member x = x `seq` go
     go (Tip y bm) = prefixOf x == y && bitmapOf x .&. bm /= 0
     go Nil = False
 
+infix 4 member
+
 -- | /O(min(n,W))/. Is the element not in the set?
 notMember :: Key -> IntSet -> Bool
 notMember k = not . member k
 
+infix 4 notMember
+
 -- | /O(log n)/. Find largest element smaller than the given one.
 --
 -- > lookupLT 3 (fromList [3, 5]) == Nothing
@@ -512,6 +516,7 @@ union t@(Bin _ _ _ _) Nil = t
 union (Tip kx bm) t = insertBM kx bm t
 union Nil t = t
 
+infixl 5 union
 
 {--------------------------------------------------------------------
   Difference
@@ -586,6 +591,8 @@ intersection (Tip kx1 bm1) t2 = intersectBM t2
 
 intersection Nil _ = Nil
 
+infixl 5 intersection
+
 {--------------------------------------------------------------------
   Subset
 --------------------------------------------------------------------}
diff --git a/Data/Map/Base.hs b/Data/Map/Base.hs
index e582e16..92ff096 100644
--- a/Data/Map/Base.hs
+++ b/Data/Map/Base.hs
@@ -466,6 +466,8 @@ member = go
 {-# INLINE member #-}
 #endif
 
+infix 4 member
+
 -- | /O(log n)/. Is the key not a member of the map? See also 'member'.
 --
 -- > notMember 5 (fromList [(5,'a'), (3,'b')]) == False
@@ -479,6 +481,8 @@ notMember k m = not $ member k m
 {-# INLINE notMember #-}
 #endif
 
+infix 4 notMember
+
 -- | /O(log n)/. Find the value at a key.
 -- Calls 'error' when the element can not be found.
 find :: Ord k => k -> Map k a -> a
@@ -1241,6 +1245,8 @@ union t1 t2 = hedgeUnion NothingS NothingS t1 t2
 {-# INLINABLE union #-}
 #endif
 
+infixl 5 union
+
 -- left-biased hedge union
 hedgeUnion :: Ord a => MaybeS a -> MaybeS a -> Map a b -> Map a b -> Map a b
 hedgeUnion _   _   t1  Tip = t1
@@ -1361,6 +1367,8 @@ intersection t1 t2 = hedgeInt NothingS NothingS t1 t2
 {-# INLINABLE intersection #-}
 #endif
 
+infixl 5 intersection
+
 hedgeInt :: Ord k => MaybeS k -> MaybeS k -> Map k a -> Map k b -> Map k a
 hedgeInt _ _ _   Tip = Tip
 hedgeInt _ _ Tip _   = Tip
diff --git a/Data/Set/Base.hs b/Data/Set/Base.hs
index 7e792f4..0c4f62b 100644
--- a/Data/Set/Base.hs
+++ b/Data/Set/Base.hs
@@ -356,6 +356,8 @@ member = go
 {-# INLINE member #-}
 #endif
 
+infix 4 member
+
 -- | /O(log n)/. Is the element not in the set?
 notMember :: Ord a => a -> Set a -> Bool
 notMember a t = not $ member a t
@@ -365,6 +367,8 @@ notMember a t = not $ member a t
 {-# INLINE notMember #-}
 #endif
 
+infix 4 notMember
+
 -- | /O(log n)/. Find largest element smaller than the given one.
 --
 -- > lookupLT 3 (fromList [3, 5]) == Nothing
@@ -616,6 +620,8 @@ union t1 t2 = hedgeUnion NothingS NothingS t1 t2
 {-# INLINABLE union #-}
 #endif
 
+infixl 5 union
+
 hedgeUnion :: Ord a => MaybeS a -> MaybeS a -> Set a -> Set a -> Set a
 hedgeUnion _   _   t1  Tip = t1
 hedgeUnion blo bhi Tip (Bin _ x l r) = link x (filterGt blo l) (filterLt bhi r)
@@ -674,6 +680,8 @@ intersection t1 t2 = hedgeInt NothingS NothingS t1 t2
 {-# INLINABLE intersection #-}
 #endif
 
+infixl 5 intersection
+
 hedgeInt :: Ord a => MaybeS a -> MaybeS a -> Set a -> Set a -> Set a
 hedgeInt _ _ _   Tip = Tip
 hedgeInt _ _ Tip _   = Tip



More information about the ghc-commits mailing list