@@ -55,10 +55,10 @@ data Env = Env {
55
55
elemsDupBS :: ! [(BS. ByteString , Int )],
56
56
elemsDupI :: ! [(Int , Int )],
57
57
58
- hm :: ! (HM. HashMap String Int ),
59
- hmbs :: ! (HM. HashMap BS. ByteString Int ),
60
- hmi :: ! (HM. HashMap Int Int ),
61
- hmi2 :: ! (HM. HashMap Int Int ),
58
+ hm :: ! (HM. HashMapW String Int ),
59
+ hmbs :: ! (HM. HashMapW BS. ByteString Int ),
60
+ hmi :: ! (HM. HashMapW Int Int ),
61
+ hmi2 :: ! (HM. HashMapW Int Int ),
62
62
m :: ! (M. Map String Int ),
63
63
mbs :: ! (M. Map BS. ByteString Int ),
64
64
im :: ! (IM. IntMap Int ),
@@ -195,7 +195,7 @@ main = do
195
195
]
196
196
197
197
, env setupEnv $ \ ~ (Env {.. }) ->
198
- bgroup " HashMap "
198
+ bgroup " HashMapW "
199
199
[ -- * Basic interface
200
200
bgroup " lookup"
201
201
[ bench " String" $ whnf (lookup keys) hm
@@ -283,32 +283,32 @@ main = do
283
283
]
284
284
285
285
------------------------------------------------------------------------
286
- -- * HashMap
286
+ -- * HashMapW
287
287
288
- lookup :: (Eq k , Hashable k ) => [k ] -> HM. HashMap k Int -> Int
288
+ lookup :: (Eq k , Hashable k ) => [k ] -> HM. HashMapW k Int -> Int
289
289
lookup xs m = foldl' (\ z k -> fromMaybe z (HM. lookup k m)) 0 xs
290
- {-# SPECIALIZE lookup :: [Int] -> HM.HashMap Int Int -> Int #-}
291
- {-# SPECIALIZE lookup :: [String] -> HM.HashMap String Int -> Int #-}
292
- {-# SPECIALIZE lookup :: [BS.ByteString] -> HM.HashMap BS.ByteString Int
290
+ {-# SPECIALIZE lookup :: [Int] -> HM.HashMapW Int Int -> Int #-}
291
+ {-# SPECIALIZE lookup :: [String] -> HM.HashMapW String Int -> Int #-}
292
+ {-# SPECIALIZE lookup :: [BS.ByteString] -> HM.HashMapW BS.ByteString Int
293
293
-> Int #-}
294
294
295
- insert :: (Eq k , Hashable k ) => [(k , Int )] -> HM. HashMap k Int
296
- -> HM. HashMap k Int
295
+ insert :: (Eq k , Hashable k ) => [(k , Int )] -> HM. HashMapW k Int
296
+ -> HM. HashMapW k Int
297
297
insert xs m0 = foldl' (\ m (k, v) -> HM. insert k v m) m0 xs
298
- {-# SPECIALIZE insert :: [(Int, Int)] -> HM.HashMap Int Int
299
- -> HM.HashMap Int Int #-}
300
- {-# SPECIALIZE insert :: [(String, Int)] -> HM.HashMap String Int
301
- -> HM.HashMap String Int #-}
302
- {-# SPECIALIZE insert :: [(BS.ByteString, Int)] -> HM.HashMap BS.ByteString Int
303
- -> HM.HashMap BS.ByteString Int #-}
304
-
305
- delete :: (Eq k , Hashable k ) => [k ] -> HM. HashMap k Int -> HM. HashMap k Int
298
+ {-# SPECIALIZE insert :: [(Int, Int)] -> HM.HashMapW Int Int
299
+ -> HM.HashMapW Int Int #-}
300
+ {-# SPECIALIZE insert :: [(String, Int)] -> HM.HashMapW String Int
301
+ -> HM.HashMapW String Int #-}
302
+ {-# SPECIALIZE insert :: [(BS.ByteString, Int)] -> HM.HashMapW BS.ByteString Int
303
+ -> HM.HashMapW BS.ByteString Int #-}
304
+
305
+ delete :: (Eq k , Hashable k ) => [k ] -> HM. HashMapW k Int -> HM. HashMapW k Int
306
306
delete xs m0 = foldl' (\ m k -> HM. delete k m) m0 xs
307
- {-# SPECIALIZE delete :: [Int] -> HM.HashMap Int Int -> HM.HashMap Int Int #-}
308
- {-# SPECIALIZE delete :: [String] -> HM.HashMap String Int
309
- -> HM.HashMap String Int #-}
310
- {-# SPECIALIZE delete :: [BS.ByteString] -> HM.HashMap BS.ByteString Int
311
- -> HM.HashMap BS.ByteString Int #-}
307
+ {-# SPECIALIZE delete :: [Int] -> HM.HashMapW Int Int -> HM.HashMapW Int Int #-}
308
+ {-# SPECIALIZE delete :: [String] -> HM.HashMapW String Int
309
+ -> HM.HashMapW String Int #-}
310
+ {-# SPECIALIZE delete :: [BS.ByteString] -> HM.HashMapW BS.ByteString Int
311
+ -> HM.HashMapW BS.ByteString Int #-}
312
312
313
313
------------------------------------------------------------------------
314
314
-- * Map
0 commit comments