Suppose that I have some code like (define (f)::void (call-with-values (λ () #!void) (λ result (apply values result)))) When I compile it, Kawa issues the warning: void-valued expression where value is needed I wonder whether this warning is desired in such circumstances? (It surely makes it difficult to write values-agnostic macros) What is interesting is that the warning disappears if I replace #!void with (values) [unless I declare the function's return type as ::void].