dash; for
example, <tt>(if (not a) b c)</tt> gets rewritten into <tt>(if a c
b)</tt>, and <tt>(if (null? x) y z)</tt> is rewritten into a call to a
special built-in <tt>(%ifnull x y z)</tt>.  As described in R5RS,
these macros also compile the various Scheme control structures
(<tt>cond</tt>, <tt>case</tt>, <tt>and</tt>, and so on) into more
fundamental control structures like <tt>if</tt> and
<tt>lambda</tt>.</p>

<p>At present, because it compiles one expression at a time, you can
<b>interactively type cod