@@ -1,14 +1,13 @@
11{-# LANGUAGE BangPatterns, CPP #-}
2−{-# OPTIONS_GHC -fno-warn-orphans #-}
32
43import Control.Applicative (many)
5−import Control.DeepSeq (NFData(rnf))
64import Criterion.Main (bench, bgroup, defaultMain, nf)
75import Data.Bits
86import Data.Char (isAlpha)
97import Data.Word (Word32)
108import Data.Word (Word8)
119import Numbers (numbers)
10+import Common (chunksOf)
1211import qualified HeadersByteString
1312import qualified HeadersText
1413import Text.Parsec.Text ()
@@ -25,21 +24,6 @@ import qualified Data.Text as T
2524import qualified Data.Text.Lazy as TL
2625import qualified Text.Parsec as P
2726
28−#if !MIN_VERSION_bytestring(0,10,0)
29−import Data.ByteString.Internal (ByteString(..))
30−instance NFData ByteString where
31− rnf (PS _ _ _) = ()
32−#endif
33−
34−instance NFData P.ParseError where
35− rnf = rnf . show
36−
37−chunksOf :: Int -> [a] -> [[a]]
38−chunksOf k = go
39− where go xs = case splitAt k xs of
40− ([],_) -> []
41− (y, ys) -> y : go ys
42−
4327main :: IO ()
4428main = do
4529 let s = take 1024 . cycle $ ['a'..'z'] ++ ['A'..'Z']