import qualified Bench.String as Str.Bench import qualified Bench.Text.Lazy as L.Txt.Bench import qualified Bench.Text.Strict as S.Txt.Bench import qualified Bench.ByteString.Lazy as L.Byt.Bench import qualified Bench.ByteString.Strict as S.Byt.Bench import Gauge ( DisplayMode(Condensed), Config(displayMode), Benchmark, defaultConfig , defaultMainWith, bgroup ) import Paths_optics_regexp (getDataFileName) main :: IO () main = do benches <- benchAll <$> getDataFileName "data/lorem-ipsum.txt" defaultMainWith defaultConfig{displayMode = Condensed} benches benchAll :: String -> [Benchmark] benchAll file = [ Str.Bench.mark "string" file , bgroup "text" [ L.Txt.Bench.mark "lazy" file , S.Txt.Bench.mark "strict" file ] , bgroup "bytestring" [ L.Byt.Bench.mark "lazy" file , S.Byt.Bench.mark "strict" file ] ]