Legend:
Library
Module
Module type
Parameter
Class
Class type
We export Expect_test_config so that the %expect syntax uses Async, to prevent a confusing situation in which one is using Expect_test_helpers functions, which expect Async to be running, but Async isn't running. Also, we override Expect_test_config.run f so that, if f () raises, run prints the exception rather than raising. Printing works better with the expect-test workflow than an unhandled exception, because there is a .corrected file that one can accept and inspect.
Synchronous check that there is no pending output on file description 0. With async, there is no guarantee that on the rhs of a IO.bind (flush ()) ... the output is completely flushed, that's why we need this.