runIO

runIO is wrapped around every foreign export and foreign import "wrapper" to mop up any uncaught exceptions. Thus, the result of running exitWith in a foreign-exported function is the same as in the main thread: it terminates the program.
Run an IO action while constructing the spec tree. SpecM is a monad to construct a spec tree, without executing any spec items. runIO allows you to run IO actions during this construction phase. The IO action is always run when the spec tree is constructed (e.g. even when --dry-run is specified). If you do not need the result of the IO action to construct the spec tree, beforeAll may be more suitable for your use case.
The runIO function lets you run an I/O computation in the Q monad. Take care: you are guaranteed the ordering of calls to runIO within a single Q computation, but not about the order in which splices are run. Note: for various murky reasons, stdout and stderr handles are not necessarily flushed when the compiler finishes running, so you should flush them yourself.
Evaluate a PandocIO operation.
Run a test suite during test suite definition. This function only exists for backward compatibility. You can also just use liftIO instead.
Launching a receiver and a sender.
Launching a receiver and a sender without workers. Any frames can be sent with sioWriteBytes.
Run an IO action without parsing anything This action may be run more than once, so prefer to do IO outside of the parser.
Run a LiterateX transformation using IO This function works with the following input line producers: This function works with the following output line consumers:
Run the command in the IO monad
Like runIO, but in the event of an exception that causes an exit, we don't shut down the system cleanly, we just exit. This is useful in some cases, because the safe exit version will give other threads a chance to clean up first, which might shut down the system in a different way. For example, try main = forkIO (runIO (exitWith (ExitFailure 1))) >> threadDelay 10000 This will sometimes exit with "interrupted" and code 0, because the main thread is given a chance to shut down when the child thread calls safeExit. There is a race to shut down between the main and child threads.
How to handle an IO test (created with buildTestBracketed)
Evaluate a PandocIO operation, handling any errors by exiting with an appropriate message and error status.
Run the action associated with the finalizer and deactivate it so that it never runs again. Note, the finalizing action runs with async exceptions masked. If this function is called multiple times, the action is guaranteed to run once and only once. Pre-release
run an io state arrow
Union
Input/output (dangerous). See runIO.