Expansion time is the time at which macro and identifier macro definition values are evaluated and macro procedures are invoked. Macros, identifier macros, and primitive syntax are expansion-time values. General expansion-time values can be defined with the define-expansion-time and let-expansion-time syntactic forms. Scoped expansion-time bindings can be obtained with local-expansion-time-value or global-expansion-time-value, and scoping information is available through local-expansion-time-bound?.
As with define-macro, an embedded define-expansion-time expression is transformed into a let-expansion-time expression.