Partially expands a form.
Non-recursively invokes the expansion algorithm for a form, returning after having invoked no more than one macro-expander.
The result is a two-element array which starts with a symbol, one of:
(not-a-macro arg)if no expander was invoked.
(expanded-to result)if an expander was invoked.
(macro-no-op arg)if that expander called
The function will normally attempt to look up the current global or
local macro binding for an array's first element. This can be overridden by
rfn as the
expander argument, which forces that particular expander
to be invoked.
For the meaning of the
env-mode parameter, see