Repository : ssh://[email protected]/containers On branch : ghc-head Link : http://git.haskell.org/?p=packages/containers.git;a=commit;h=2f6484b44de0236a4a88d63fd5b41213a72f11fa
>--------------------------------------------------------------- commit 2f6484b44de0236a4a88d63fd5b41213a72f11fa Author: Milan Straka <[email protected]> Date: Wed Nov 21 15:25:26 2012 +0100 Fix forgotten documentation of Int{Map,Set}.delete{Min,Max}. These functions used to call error on empty map, but do not so since 0.5. >--------------------------------------------------------------- 2f6484b44de0236a4a88d63fd5b41213a72f11fa Data/IntMap/Base.hs | 12 ++++++++---- Data/IntSet/Base.hs | 10 ++++++++-- Data/Set/Base.hs | 4 ++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Data/IntMap/Base.hs b/Data/IntMap/Base.hs index 0a54093..ba963f1 100644 --- a/Data/IntMap/Base.hs +++ b/Data/IntMap/Base.hs @@ -1125,13 +1125,17 @@ findMax (Bin _ m l r) go (Bin _ _ _ r') = go r' go Nil = error "findMax Nil" --- | /O(min(n,W))/. Delete the minimal key. An error is thrown if the IntMap is already empty. --- Note, this is not the same behavior Map. +-- | /O(min(n,W))/. Delete the minimal key. Returns an empty map if the map is empty. +-- +-- Note that this is a change of behaviour for consistency with 'Data.Map.Map' – +-- versions prior to 0.5 threw an error if the 'IntMap' was already empty. deleteMin :: IntMap a -> IntMap a deleteMin = maybe Nil snd . minView --- | /O(min(n,W))/. Delete the maximal key. An error is thrown if the IntMap is already empty. --- Note, this is not the same behavior Map. +-- | /O(min(n,W))/. Delete the maximal key. Returns an empty map if the map is empty. +-- +-- Note that this is a change of behaviour for consistency with 'Data.Map.Map' – +-- versions prior to 0.5 threw an error if the 'IntMap' was already empty. deleteMax :: IntMap a -> IntMap a deleteMax = maybe Nil snd . maxView diff --git a/Data/IntSet/Base.hs b/Data/IntSet/Base.hs index 7aec215..d674aeb 100644 --- a/Data/IntSet/Base.hs +++ b/Data/IntSet/Base.hs @@ -808,11 +808,17 @@ findMax (Bin _ m l r) find Nil = error "findMax Nil" --- | /O(min(n,W))/. Delete the minimal element. +-- | /O(min(n,W))/. Delete the minimal element. Returns an empty set if the set is empty. +-- +-- Note that this is a change of behaviour for consistency with 'Data.Set.Set' – +-- versions prior to 0.5 threw an error if the 'IntSet' was already empty. deleteMin :: IntSet -> IntSet deleteMin = maybe Nil snd . minView --- | /O(min(n,W))/. Delete the maximal element. +-- | /O(min(n,W))/. Delete the maximal element. Returns an empty set if the set is empty. +-- +-- Note that this is a change of behaviour for consistency with 'Data.Set.Set' – +-- versions prior to 0.5 threw an error if the 'IntSet' was already empty. deleteMax :: IntSet -> IntSet deleteMax = maybe Nil snd . maxView diff --git a/Data/Set/Base.hs b/Data/Set/Base.hs index b664870..3d451b4 100644 --- a/Data/Set/Base.hs +++ b/Data/Set/Base.hs @@ -517,13 +517,13 @@ findMax (Bin _ x _ Tip) = x findMax (Bin _ _ _ r) = findMax r findMax Tip = error "Set.findMax: empty set has no maximal element" --- | /O(log n)/. Delete the minimal element. +-- | /O(log n)/. Delete the minimal element. Returns an empty set if the set is empty. deleteMin :: Set a -> Set a deleteMin (Bin _ _ Tip r) = r deleteMin (Bin _ x l r) = balanceR x (deleteMin l) r deleteMin Tip = Tip --- | /O(log n)/. Delete the maximal element. +-- | /O(log n)/. Delete the maximal element. Returns an empty set if the set is empty. deleteMax :: Set a -> Set a deleteMax (Bin _ _ l Tip) = l deleteMax (Bin _ x l r) = balanceL x l (deleteMax r) _______________________________________________ ghc-commits mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-commits
