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.
val sanitize : string -> string
sanitize can be used to map all output strings, e.g. for cleansing.
val upon_unreleasable_issue : [ `CR | `Warning_for_collector_testing ]
upon_unreleasable_issue specifies how to deal with output that should not be released even if it is accepted (e.g. backtraces). The default is `CR.