Conductor currently sends sendOutput, senResult and sendError over seperate asynchronous channels. Because these channels are delivered independently, the host cannot rely on a single total order across them. As a result, messages that were emitted later on the stdout channel can appear after earlier result or error messages in the frontend REPL.
This makes output ordering unpredictable for evaluators that want to interleave normal output with typed result/error display. For example, the frontend may render an error before the fial output line even if that was not the emission order intended by the evaluator.
Conductor currently sends sendOutput, senResult and sendError over seperate asynchronous channels. Because these channels are delivered independently, the host cannot rely on a single total order across them. As a result, messages that were emitted later on the stdout channel can appear after earlier result or error messages in the frontend REPL.
This makes output ordering unpredictable for evaluators that want to interleave normal output with typed result/error display. For example, the frontend may render an error before the fial output line even if that was not the emission order intended by the evaluator.