module Main (main) where import Data.Char import qualified NaiveString import qualified NaiveStringCallArity import qualified NaiveStringExported import qualified NaiveStringExported2 import qualified WithCallArity import qualified WithoutCallArity import qualified WithCallArityExported import qualified WithCallArityExported2 import Criterion.Main main = defaultMain [ bench "naive String, no Call Arity" $ nf (NaiveString.doIt . list) 1000 , bench "naive String" $ nf (NaiveStringCallArity.doIt . list) 1000 , bench "naive String, exported 1" $ nf (NaiveStringExported.doIt . list) 1000 , bench "naive String, exported 2" $ nf (NaiveStringExported2.doIt . list) 1000 , bench "DList, no CallArity" $ nf (WithoutCallArity.doIt . list) 1000 , bench "DList" $ nf (WithCallArity.doIt . list) 1000 , bench "DList, exported 1" $ nf (WithCallArityExported.doIt . list) 1000 , bench "DList, exported 2" $ nf (WithCallArityExported2.doIt . list) 1000 ] list n = concat (replicate n [0..n])