suppose I have:

(define-macro (foo ...))

the standard way to 'debug' this is to do:

(pp (lambda () (foo ...)))

however, this requires that (foo ...) expands to proper scheme code (i.e. not things like "(a b . c)"), and also code that has well defined semantic meaning (i.e. no undefined vars)

as i write macros, i find that most of the time (in fact, except for the starting point and the ending point), my macro  expansion offten results in non-scheme code; is there a way i can see this output? i.e. I wnat to see:

(macroexpand '(foo ...))

rather than the particular error for why (foo ... ) does not expand to legit scheme code

thanks!