packages feed

jacinda-0.3.0.0: bench/Bench.hs

{-# LANGUAGE OverloadedStrings #-}

module Main (main) where

import           Control.DeepSeq (NFData (..))
import           Criterion.Main
import           Jacinda.AST
import           Jacinda.File

main :: IO ()
main =
    defaultMain [ bgroup "eval"
                      [ bench "exprEval" $ nf exprEval "[x+' '+y]|'' split '01-23-1987' /-/"
                      ]
                ]

instance NFData (E a) where
    rnf (StrLit _ str)  = rnf str
    rnf (IntLit _ i)    = rnf i
    rnf (BoolLit _ b)   = rnf b
    rnf (FloatLit _ f)  = rnf f
    rnf (Arr _ es)      = rnf es
    rnf (Tup _ es)      = rnf es
    rnf (OptionVal _ e) = rnf e