reflection-2.1.9: examples/Benchmark.hs
import Criterion.Main
import qualified Data.Reflection as Old
import qualified Data.NewReflection as New
old :: [Int] -> [Int]
old = map (\x -> Old.reify x Old.reflect)
new :: [Int] -> [Int]
new = map (\x -> New.reify x New.reflect)
main :: IO ()
main = defaultMain
[ bench "old" $ nf old [1..100000]
, bench "new" $ nf new [1..100000]
]