Thanks again for your help, I think I finally understand er-macros, at least a little.
A couple more questions. I was playing with a macro that extends the syntax of if. This macro works fine on its own and also if I import the module with no prefix. However I get an error if I try to import the module with a prefix. The offending code is below.
;; This works (import test) (ef (< 1 0) #t #f) ===> (if (< 1 0) #t #f)
;; This produces an error. (import (prefix test t-)) (t-ef (< 1 0) #t #f) ===> Error: (append) during expansion of (t-ef ...) - bad argument type - not a proper list: #<unspecified>
Also, is there any way I can name this macro 'if'. It accepts the same syntax as the standard 'if' but it also extends it. I've tried every permutation of quoting that I can conceive of but I keep getting errors if I name it 'if', even though it produces the correct forms.