Capture the output of a process in a
ByteString.
This function will fork a separate thread to consume all input from
the process, and will only make the results available when the
underlying
Handle is closed. As this is provided as an
STM action, you can either check if the result is available, or
block until it's ready.
In the event of any exception occurring when reading from the
Handle, the
STM action will throw a
ByteStringOutputException.