Pipe_with_writer_error A Pipe_with_writer_error.t holds the read end of a pipe and a (unit, 'error) Deferred.Result.t that becomes determined when the write end succeeds or fails. On writer failure the pipe is closed but the remaining items can still be consumed. On writer success the pipe remains open until the writer is explicitly closed.