Repository : ssh://[email protected]/containers On branch : ghc-head Link : http://git.haskell.org/?p=packages/containers.git;a=commit;h=341b8172afe8237188766efa8a006d4946dbd229
>--------------------------------------------------------------- commit 341b8172afe8237188766efa8a006d4946dbd229 Author: Liyang HU <[email protected]> Date: Tue Oct 2 10:29:45 2012 +0900 Annotate IntMap.fold*WithKey with correct Key synonym >--------------------------------------------------------------- 341b8172afe8237188766efa8a006d4946dbd229 Data/IntMap.hs | 2 +- Data/IntMap/Base.hs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Data/IntMap.hs b/Data/IntMap.hs index e3e9eb1..5be3c13 100644 --- a/Data/IntMap.hs +++ b/Data/IntMap.hs @@ -90,6 +90,6 @@ fold = foldr -- /O(n)/. Fold the keys and values in the map using the given -- right-associative binary operator. This function is an equivalent -- of 'foldrWithKey' and is present for compatibility only. -foldWithKey :: (Int -> a -> b -> b) -> b -> IntMap a -> b +foldWithKey :: (Key -> a -> b -> b) -> b -> IntMap a -> b foldWithKey = foldrWithKey {-# INLINE foldWithKey #-} diff --git a/Data/IntMap/Base.hs b/Data/IntMap/Base.hs index b3f8864..1bdfc1b 100644 --- a/Data/IntMap/Base.hs +++ b/Data/IntMap/Base.hs @@ -1619,7 +1619,7 @@ foldl' f z = \t -> -- Use lambda t to be inlinable with two arguments only. -- -- > let f k a result = result ++ "(" ++ (show k) ++ ":" ++ a ++ ")" -- > foldrWithKey f "Map: " (fromList [(5,"a"), (3,"b")]) == "Map: (5:a)(3:b)" -foldrWithKey :: (Int -> a -> b -> b) -> b -> IntMap a -> b +foldrWithKey :: (Key -> a -> b -> b) -> b -> IntMap a -> b foldrWithKey f z = \t -> -- Use lambda t to be inlinable with two arguments only. case t of Bin _ m l r | m < 0 -> go (go z l) r -- put negative numbers before | otherwise -> go (go z r) l @@ -1633,7 +1633,7 @@ foldrWithKey f z = \t -> -- Use lambda t to be inlinable with two arguments -- | /O(n)/. A strict version of 'foldrWithKey'. Each application of the operator is -- evaluated before using the result in the next application. This -- function is strict in the starting value. -foldrWithKey' :: (Int -> a -> b -> b) -> b -> IntMap a -> b +foldrWithKey' :: (Key -> a -> b -> b) -> b -> IntMap a -> b foldrWithKey' f z = \t -> -- Use lambda t to be inlinable with two arguments only. case t of Bin _ m l r | m < 0 -> go (go z l) r -- put negative numbers before | otherwise -> go (go z r) l @@ -1655,7 +1655,7 @@ foldrWithKey' f z = \t -> -- Use lambda t to be inlinable with two argument -- -- > let f result k a = result ++ "(" ++ (show k) ++ ":" ++ a ++ ")" -- > foldlWithKey f "Map: " (fromList [(5,"a"), (3,"b")]) == "Map: (3:b)(5:a)" -foldlWithKey :: (a -> Int -> b -> a) -> a -> IntMap b -> a +foldlWithKey :: (a -> Key -> b -> a) -> a -> IntMap b -> a foldlWithKey f z = \t -> -- Use lambda t to be inlinable with two arguments only. case t of Bin _ m l r | m < 0 -> go (go z r) l -- put negative numbers before | otherwise -> go (go z l) r @@ -1669,7 +1669,7 @@ foldlWithKey f z = \t -> -- Use lambda t to be inlinable with two arguments -- | /O(n)/. A strict version of 'foldlWithKey'. Each application of the operator is -- evaluated before using the result in the next application. This -- function is strict in the starting value. -foldlWithKey' :: (a -> Int -> b -> a) -> a -> IntMap b -> a +foldlWithKey' :: (a -> Key -> b -> a) -> a -> IntMap b -> a foldlWithKey' f z = \t -> -- Use lambda t to be inlinable with two arguments only. case t of Bin _ m l r | m < 0 -> go (go z r) l -- put negative numbers before | otherwise -> go (go z l) r _______________________________________________ ghc-commits mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-commits
