This library provides define-syntax, implementing the syntax-rules high-level macro system from the appendix of R4RS. This implementation of syntax rules can only be used withthe 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 defintions contain these expressions, not the expansions of applied macros):
These variables are defined by the synrule.ss library as keywords.This library was contributed by Shriram Krishnamurthi, working from Dorai Sitaram's implementation.