Function Spy

Part of:

package metabang.utilities
( spy &rest < forms > )
A debugging tool: wrapping this around a form causes both the form and its values to be printed on *trace-output*. Like `progn,' this returns the value(s) of the last form, so that it can be safely wrapped about functional code as well. In other words, (spy (foo)) returns the same values as (foo). The first form can optionally be a list of options, eg., keyword value pairs). Options supported: :STREAM <stream> - directs output to `stream' :NO-NEWLINE <boolean> - if true, suppresses insertion of newlines between forms :NO-EXPAND <boolean> - if true, reprints the form with values replacing subforms :DEBUG <symbol> - print only if we are debugging `symbol' or *spy-debugging* is true (the default)