module Main where import Criterion.Main import Data.Dependency microlens :: Dependency microlens = Dependency "microlens" mempty mempty free :: Dependency free = Dependency "free" mempty mempty comonad :: Dependency comonad = Dependency "comonad" mempty mempty bifunctors :: Dependency bifunctors = Dependency "bifunctors" mempty ["comonad"] lens :: Dependency lens = Dependency "lens" mempty ["free", "comonad"] deps :: [Dependency] deps = [free, lens, comonad] main :: IO () main = defaultMain [ bgroup "buildSequence" [ bench "3" $ nf buildSequence deps ] , bgroup "asGraph" [ bench "3" $ nf (fst . asGraph) deps , bench "6" $ nf (fst . asGraph) (bifunctors : microlens : deps) ] ]