module Main where import Criterion.Main import Language.ATS main :: IO () main = defaultMain [ env envFiles $ \ ~(l, m) -> bgroup "format" [ bench "lexATS (large)" $ nf lexATS l , bench "parse (large)" $ nf parse l , bench "fmap printATS . parse (large)" $ nf (fmap printATS . parse) l , bench "lexATS (medium)" $ nf lexATS m , bench "parse (medium)" $ nf parse m , bench "fmap printATS . parse (medium)" $ nf (fmap printATS . parse) m ] ] where large = readFile "test/data/polyglot.dats" medium = readFile "test/data/concurrency.dats" envFiles = (,) <$> large <*> medium