Benchmark.Suite wrapper

#Suite Source

data Suite :: Type

#copy Source

copy :: forall e h. STSuite h -> Eff (st :: ST h | e) (STSuite h)

Copy a mutable Suite

#thawST Source

thawST :: forall e h. Suite -> Eff (st :: ST h | e) (STSuite h)

Convert an immutable Suite to a mutable Suite

#freezeST Source

freezeST :: forall e h. STSuite h -> Eff (st :: ST h | e) Suite

Convert a mutable Suite to an immutable Suite

#runST Source

runST :: forall e. (forall h. Eff (st :: ST h | e) (STSuite h)) -> Eff e Suite

Freeze a mutable Suite object, creating an immutable object. Use this function as you would use Prelude.runST to freeze a mutable reference.

The rank-2 type prevents the map from escaping the scope of runST.

#pureST Source

pureST :: (forall e s. Eff (st :: ST s | e) (STSuite s)) -> Suite

#mutate Source

mutate :: forall b. (forall e s. STSuite s -> Eff (st :: ST s | e) b) -> Suite -> Suite