@@ -190,6 +190,18 @@ main = do
190190 , bench "bl" $ nf (BL.map f . BL.map f) bla
191191 , bench "l" $ nf (L.map f . L.map f) la
192192 ],
193+ bgroup "replicate" [
194+ bench "ts" $ nf (TS.replicate bsa_len) (TS.singleton c)
195+ , bench "tl" $ nf (TL.replicate (fromIntegral bsa_len)) (TL.singleton c)
196+ , bench "bs" $ nf (BS.replicate bsa_len) c
197+ , bench "bl" $ nf (BL.replicate (fromIntegral bsa_len)) c
198+ , bench "l" $ nf (L.replicate bsa_len) c
199+ ],
200+ bgroup "2replicate" [
201+ bench "ts" $ nf (TS.replicate (bsa_len `div` TS.length tsw)) tsw
202+ , bench "tl" $ nf (TL.replicate (fromIntegral bsa_len `div` TL.length tlw)) tlw
203+ , bench "l" $ nf (replicat (bsa_len `div` TS.length tsw)) lw
204+ ],
193205 bgroup "reverse" [
194206 bench "ts" $ nf TS.reverse tsa
195207 , bench "tl" $ nf TL.reverse tla
@@ -295,6 +307,18 @@ main = do
295307 , bench "bs" $ nf (BS.length . BS.map f . BS.map f) bsa
296308 , bench "l" $ nf (L.length . L.map f . L.map f) la
297309 ],
310+ bgroup "replicate" [
311+ bench "ts" $ nf (TS.length . TS.replicate bsa_len) (TS.singleton c)
312+ , bench "tl" $ nf (TL.length . TL.replicate (fromIntegral bsa_len)) (TL.singleton c)
313+ , bench "bs" $ nf (BS.length . BS.replicate bsa_len) c
314+ , bench "bl" $ nf (BL.length . BL.replicate (fromIntegral bsa_len)) c
315+ , bench "l" $ nf (L.length . L.replicate bsa_len) c
316+ ],
317+ bgroup "2replicate" [
318+ bench "ts" $ nf (TS.length . TS.replicate (bsa_len `div` TS.length tsw)) tsw
319+ , bench "tl" $ nf (TL.length . TL.replicate (fromIntegral bsa_len `div` TL.length tlw)) tlw
320+ , bench "l" $ nf (L.length . replicat (bsa_len `div` TS.length tsw)) lw
321+ ],
298322 bgroup "take" [
299323 bench "ts" $ nf (TS.length . TS.take (tsa_len `div` 3)) tsa
300324 , bench "tl" $ nf (TL.length . TL.take (tla_len `div` 3)) tla
@@ -336,6 +360,7 @@ main = do
336360 tlw = TL.fromChunks [tsw]
337361 f (C# c#) = C# (chr# (ord# c# +# 1#))
338362 len l _ = l + (1::Int)
363+ replicat n = concat . L.replicate n
339364
340365chunksOf :: Int -> BS.ByteString -> [BS.ByteString]
341366chunksOf k = go