I understand the point but then it comes to the problem how to handle this in macros. For
example if bar is a proceduce which returns multiple values and I have a macro
"my-macro" which wraps the call with some initialization and finalization code
and I write
(my-macro (bar))
how to write this macro without knowing if bar is returning multiple values or
not? For example I would like the code above to expand into
(begin
(initialization-code)
(let ((ret (bar)))
(finalization-code)
ret))
But this does not work as shown by the example above. How to implement this
macro correctly?