title: Using Criterion in Haskell
body: <p>I am very new to Haskell.</p>
  <p>I am trying to use Criterion to get performance data. My Main module is as follows:</p>
  <pre><code>module Main where
  import SingleThreadedBlockChain
  import Data.Time.Clock.System (getSystemTime)
  import System.IO (readFile)
  import System.TimeIt
  import System.Environment ( getArgs )
  import Criterion.Main
  
  main :: IO ()
  main = do
      args &lt;- getArgs
      time &lt;- getSystemTime
      content &lt;- readFile (args !! 0)
      defaultMain [
        bench &quot;putStrLn&quot; $ nfIO (putStrLn (&quot;The last block is &quot; ++ show (last (makeBlockChain &quot;&quot; (lines content) 0 (show time)))))
       ]
  </code></pre>
  <p>I am trying to use the Criterion documentation + things I've seen on StackOverflow to get this working. I'm getting the following error:</p>
  <pre class="lang-sh prettyprint-override"><code>Error: none of the specified names matches a benchmark
  </code></pre>
  <p>I thought I would be benchmarking IO. From the examples I've seen, the names don't always match the benchmarks. Could someone explain how the names should relate to the benchmarks?</p>