[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