@@ -215,6 +215,11 @@ classifyWith ::
215215 (Monad m, Ord k, Num a) => (a -> k) -> SerialT m a -> m (Map k a)
216216classifyWith f = S.fold (FL.classifyWith f FL.sum)
217217
218+{-# INLINE classifyWithInt #-}
219+classifyWithInt ::
220+ (MonadIO m, Num a) => (a -> Int) -> SerialT m a -> m (IntMap a)
221+classifyWithInt f = S.fold (FL.classifyWith f FL.sum)
222+
218223{-# INLINE classifyScanWith #-}
219224classifyScanWith ::
220225 forall m k a. (Monad m, Ord k, Num a) => (a -> k) -> SerialT m a -> m ()
@@ -430,6 +435,8 @@ o_n_heap_serial value =
430435 $ demuxWith (getKey 64) mp
431436 , benchIOSink value "classifyWith (64 buckets) sum"
432437 $ classifyWith (fst . getKey 64)
438+ , benchIOSink value "classifyWithInt (64 buckets) sum"
439+ $ classifyWithInt (fst . getKey 64)
433440 , benchIOSink value "classifyScanWith (64 buckets) sum"
434441 $ classifyScanWith (fst . getKey 64)
435442 , benchIOSink value "classifyMutWith (single bucket) sum"
@@ -438,14 +445,14 @@ o_n_heap_serial value =
438445 $ classifyMutWith (fst . getKey 64)
439446 , benchIOSink value "classifyMutWith (max buckets) sum"
440447 $ classifyMutWith (fst . getKey value)
448+ , benchIOSink value "classifyMutWithInt (64 buckets) sum"
449+ $ classifyMutWithInt (fst . getKey 64)
441450 , benchIOSink value "classifyMutWithHash (single bucket) sum"
442451 $ classifyMutWithHash (fst . getKey 1)
443452 , benchIOSink value "classifyMutWithHash (64 buckets) sum"
444453 $ classifyMutWithHash (fst . getKey 64)
445454 , benchIOSink value "classifyMutWithHash (max buckets) sum"
446455 $ classifyMutWithHash (fst . getKey value)
447− , benchIOSink value "classifyMutWithInt (64 buckets) sum"
448− $ classifyMutWithInt (fst . getKey 64)
449456 ]
450457 ]
451458