Hi Vladimir,

On Mon, 21 Oct 2019 at 03:21, Vladimir Nikishkin <lockywolf@gmail.com> wrote:

Can we replace the (set) on line 177 of ob-scheme.el with the following
form:
(setq result (if output
                 (let ((g-r-o (geiser-eval--retort-output ret)))
                 (if g-r-o
                     g-r-o
                     "Geiser-eval--retort-output returned nil.\nThe interpreter produced no output\nor there is a bug in geiser (likely!)"))
(geiser-eval--retort-result-str ret "")))))

I am not super sure about what's going on there, but I think that output
can never be an empty list, because in the worst case it is an empty
string.
(But I wouldn't vouch for this.)

Can you explain more?  Have you seen cases where (geiser-eval--retort-output ret) returns nil, even though you say just above that it can never do that?

Best wishes,
    Neil