Macro 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,&#39; this returns the value(s)<br> of the last form, so that it can be safely wrapped about functional code as<br> well. In other words, (spy (foo)) returns the same values as (foo).<br> The first form can optionally be a list of options, eg., keyword value pairs).<br> Options supported:<br> :STREAM &lt;stream&gt; - 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)