{-# LANGUAGE FlexibleContexts #-}
import qualified BenchMe
import qualified BenchTransformers
import qualified Criterion
import qualified Criterion.Main as Criterion
main :: IO ()
main =
Criterion.defaultMain
[Criterion.bgroup "right1" $
let numbers = take 10000 (cycle [2,3,5,7])
in map ($ numbers)
[Criterion.bench "effect-interpreters" .
Criterion.whnf BenchMe.right1
,Criterion.bench "transformers" .
Criterion.whnf BenchTransformers.right1]
,Criterion.bgroup "right2" $
let numbers = take 10000 (cycle [2,3,5,7]) ++ [11]
in map ($numbers)
[Criterion.bench "effect-interpreters" .
Criterion.whnf BenchMe.right2
,Criterion.bench "transformers" .
Criterion.whnf BenchTransformers.right2]
,Criterion.bgroup "sum-env" $
[Criterion.bench "effect-interpreters"
(Criterion.whnf BenchMe.sumEnv 1000)]
,Criterion.bgroup "sum-env-nondet" $
[Criterion.bench "effect-interpreters"
(Criterion.whnf BenchMe.sumEnvNondet 1000)
,Criterion.bench "transformers"
(Criterion.whnf BenchTransformers.sumEnv 1000)]]