Is it possible to define macros foo & bar so that the following code:

(foo '(1 2 3))

... some junk ...

(bar)

becomes, at compile time:

'()

... some junk ...

'(1 2 3)


-- the real question being, right now, each macro expansion seems to happen in it's own little world -- is there anyway they can communicate?

Thanks!