packages feed

dependency-0.1.0.0: bench/Bench.hs

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)
                      ]
                ]