do-symbols
(do-symbols (var [package [result]]) body...)
Evaluates the body once per symbol ACCESSIBLE in package -- the current package
when omitted -- with var bound to the symbol, then evaluates result with
var bound to nil and returns its value (nil when no result form is given).
Accessible means the symbols the package owns, internal and external alike, plus
the exports it inherits through its use list; each is spelled against the package
that owns it, so a package using cl yields the bare cl names. The symbols come
in sorted order.
This is an interpreter-only operator, like
do-external-symbols: the compiled backends carry no
package registry at run time, so a call reaching them is a compile error. Inside a
#. read-time form it works everywhere, because the macro-time evaluator resolves
it before compilation.