before : IO () -> Spec a () -> Spec a () Run an IO action before each test in the group.
Visibility: exportafter : IO () -> Spec a () -> Spec a () Run an IO action after each test in the group.
Visibility: exportaround : (IO (TestResult ()) -> IO (TestResult ())) -> Spec a () -> Spec a () Wrap each test with a setup/teardown action. The wrapper receives the
test action and must call it.
Visibility: exportbeforeAll : IO () -> Spec a () -> Spec a () Run an IO action once before the first test in the group.
Subsequent tests reuse the cached result.
Visibility: exportafterAll : IO () -> Spec a () -> Spec a () Run an IO action once after all tests in the group have finished.
Visibility: exportbeforeWith : (outer -> IO inner) -> Spec inner () -> Spec outer () Transform the resource type. Runs `f` before each test to produce the
inner resource from the outer one.
Visibility: exportaroundWith : ((inner -> IO (TestResult ())) -> outer -> IO (TestResult ())) -> Spec inner () -> Spec outer () Most general hook: transform both the resource type and wrap the test action.
Visibility: exportafterWith : (a -> IO ()) -> Spec a () -> Spec a () Run a cleanup action that has access to the resource after each test.
Visibility: exportbeforeAllWith : (outer -> IO inner) -> Spec inner () -> Spec outer () Transform the resource type once for the entire group. Runs `f` once on
the first test and caches the result for subsequent tests.
Visibility: exportprovide : IO a -> Spec a () -> Spec () () Convenience: produce a resource from nothing and thread it into tests.
Visibility: export