criterion-1.2.5.0: Robust, reliable performance measurement and analysis

Copyright(c) 2009 Neil Brown
LicenseBSD-style
Maintainerbos@serpentine.com
Stabilityexperimental
PortabilityGHC
Safe HaskellTrustworthy
LanguageHaskell2010

Criterion.Monad

Description

The environment in which most criterion code executes.

Synopsis

Documentation

data Criterion a Source #

The monad in which most criterion code executes.

Instances

Monad Criterion Source # 

Methods

(>>=) :: Criterion a -> (a -> Criterion b) -> Criterion b #

(>>) :: Criterion a -> Criterion b -> Criterion b #

return :: a -> Criterion a #

fail :: String -> Criterion a #

Functor Criterion Source # 

Methods

fmap :: (a -> b) -> Criterion a -> Criterion b #

(<$) :: a -> Criterion b -> Criterion a #

Applicative Criterion Source # 

Methods

pure :: a -> Criterion a #

(<*>) :: Criterion (a -> b) -> Criterion a -> Criterion b #

(*>) :: Criterion a -> Criterion b -> Criterion b #

(<*) :: Criterion a -> Criterion b -> Criterion a #

MonadIO Criterion Source # 

Methods

liftIO :: IO a -> Criterion a #

MonadThrow Criterion Source # 

Methods

throwM :: Exception e => e -> Criterion a #

MonadCatch Criterion Source # 

Methods

catch :: Exception e => Criterion a -> (e -> Criterion a) -> Criterion a #

MonadMask Criterion Source # 

Methods

mask :: ((forall a. Criterion a -> Criterion a) -> Criterion b) -> Criterion b #

uninterruptibleMask :: ((forall a. Criterion a -> Criterion a) -> Criterion b) -> Criterion b #

MonadReader Config Criterion Source # 

Methods

ask :: Criterion Config #

local :: (Config -> Config) -> Criterion a -> Criterion a #

reader :: (Config -> a) -> Criterion a #

CritHPrintfType (Criterion a) Source # 

Methods

chPrintfImpl :: (Config -> Bool) -> PrintfCont -> Criterion a

withConfig :: Config -> Criterion a -> IO a Source #

Run a Criterion action with the given Config.

getGen :: Criterion GenIO Source #

Return a random number generator, creating one if necessary.

This is not currently thread-safe, but in a harmless way (we might call createSystemRandom more than once if multiple threads race).

getOverhead :: Criterion Double Source #

Return an estimate of the measurement overhead.