packages feed

teardown-0.1.0.1: benchmark/Main.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Main where

import Protolude

import Criterion
import Criterion.Main

import Control.Teardown (newTeardown, teardown)

main :: IO ()
main = defaultMain [
    bgroup "simple IO unit return"
    [
      bench "without teardown" (whnfIO $ return ())
    , env
        (newTeardown "benchmark" $ (return () :: IO ()))
        (\unitTeardown -> bench "with teardown" (whnfIO $ void $ teardown unitTeardown))
    ]
  ]