I encountered a problem that previously defined macro can not be used inside other macro defination.
It seems that newly defined syntax does not available in macro expansion environment, is it intended?
Here are some simplified code:
((fn exp ...) (lambda exp ...))))
(lambda (form rename compare)
(let ((f (fn (x) x)))
`(list ,@(map f form))))))