packages feed

teardown-0.4.0.0: benchmark/Main.hs

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

import RIO

import Criterion
import Criterion.Main

import Control.Teardown (newTeardown, runTeardown_)

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