Not yet cleaned up and not simplified reproducer:
(define (call-command-with-output-error-to-string cmd)
(let* ((err-cons (pipe))
(port (with-error-to-port
(cdr err-cons)
(lambda () (open-output-pipe cmd))))
(_ (setvbuf (car err-cons) 'block (* 1024 1024 16)))
(_ (scm->json bril-program port))
(result "hi" ;; (read-delimited "" port)
))
(close-port (cdr err-cons))
(values
result
(read-delimited "" (car err-cons)))))