{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
module Main where
import Criterion.Main as Criterion
import Data.ByteString as Strict
import Data.ByteString.Lazy as Lazy
import Data.GenValidity
import Data.GenValidity.ByteString ()
import Data.GenValidity.Criterion
main :: IO ()
main =
Criterion.defaultMain
[ bgroup
"Instances"
[ genValidBench @Strict.ByteString,
genValidBench @Lazy.ByteString
],
bgroup
"Approaches"
[ genBenchSizes "SB.pack <$> genValid" (Strict.pack <$> genValid),
genBenchSizes "LB.pack <$> genValid" (Lazy.pack <$> genValid)
]
]