Unify IntMap.deleteFind{Min,Max} with the Map ...
authorMilan Straka <fox@ucw.cz>
Mon, 5 Dec 2011 21:33:18 +0000 (22:33 +0100)
committerMilan Straka <fox@ucw.cz>
Sun, 4 Mar 2012 15:38:11 +0000 (16:38 +0100)
... counterparts.

The type signature has changed from
  IntMap.deleteFind{Min,Max} :: IntMap a -> (a, IntMap a)
to
  IntMap.deleteFind{Min,Max} :: IntMap a -> ((Key, a), IntMap a)
.

Data/IntMap/Base.hs
tests/intmap-properties.hs

index 0ca3480..08752da 100644 (file)
@@ -955,12 +955,12 @@ minView :: IntMap a -> Maybe (a, IntMap a)
 minView t = liftM (first snd) (minViewWithKey t)
 
 -- | /O(log n)/. Delete and find the maximal element.
-deleteFindMax :: IntMap a -> (a, IntMap a)
-deleteFindMax = fromMaybe (error "deleteFindMax: empty map has no maximal element") . maxView
+deleteFindMax :: IntMap a -> ((Key, a), IntMap a)
+deleteFindMax = fromMaybe (error "deleteFindMax: empty map has no maximal element") . maxViewWithKey
 
 -- | /O(log n)/. Delete and find the minimal element.
-deleteFindMin :: IntMap a -> (a, IntMap a)
-deleteFindMin = fromMaybe (error "deleteFindMin: empty map has no minimal element") . minView
+deleteFindMin :: IntMap a -> ((Key, a), IntMap a)
+deleteFindMin = fromMaybe (error "deleteFindMin: empty map has no minimal element") . minViewWithKey
 
 -- | /O(log n)/. The minimal key of the map.
 findMin :: IntMap a -> (Key, a)
index 93d9eb9..9fadf9d 100644 (file)
@@ -622,10 +622,10 @@ test_deleteMax = do
     deleteMin (empty :: SMap) @?= empty
 
 test_deleteFindMin :: Assertion
-test_deleteFindMin = deleteFindMin (fromList [(5,"a"), (3,"b"), (10,"c")]) @?= ("b", fromList[(5,"a"), (10,"c")])
+test_deleteFindMin = deleteFindMin (fromList [(5,"a"), (3,"b"), (10,"c")]) @?= ((3,"b"), fromList[(5,"a"), (10,"c")])
 
 test_deleteFindMax :: Assertion
-test_deleteFindMax = deleteFindMax (fromList [(5,"a"), (3,"b"), (10,"c")]) @?= ("c", fromList [(3,"b"), (5,"a")])
+test_deleteFindMax = deleteFindMax (fromList [(5,"a"), (3,"b"), (10,"c")]) @?= ((10,"c"), fromList [(3,"b"), (5,"a")])
 
 test_updateMin :: Assertion
 test_updateMin = do