This library provides define-syntax, implementing the syntax-rules high-level macro system from R5RS. This implementation of syntax rules can only be used with the following syntactic forms: quote if begin set! define lambda letrec let let* do case cond. If any other form is used in the macro definition or macro application, the results are unpredictable.
Macros definitions using define-syntax are translated into equivalent define-macro expressions; however, the translated macros contain the following free variables (the macro definitions contain these expressions, not the expansions of applied macros):
This library was contributed by Shriram Krishnamurthi, working from Dorai Sitaram's implementation.