The following code named fib.hs
import Criterion.Main (defaultMain)
fibZ = 1:1:zipWith (+) fibZ (tail fibZ)
main = defaultMain [
bench "fibZ 10" $ \n -> fibZ (10+n-n)
]
errors with
fib.hs:45:10: Not in scope: `bench'
What is wrong? I have borrowed this example from here.
The library has changed since that blog post was written. Now you should write:
import Criterion.Main
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
main = defaultMain [
bgroup "fib" [ bench "fib 10" $ B fib 10
, bench "fib 35" $ B fib 35
, bench "fib 37" $ B fib 37
]
]
This was taken directly from the "Running benchmarks" section of the Hackage documentation for Criterion.Main.