Portable implementation of the syntax-case macro system

The syntax-case macro system implements the restricted high-level syntax-rules macros of the Revised5 Report as well as the equally high-level but general-purpose syntax-case macros. It also supports a compatible module system (psyntax?) that allows import and export of macro bindings as well as bindings for variables and modules.

In SRFI:93, Kent Dybvig on behalf of the R6RS author's committee proposes a variation of Chez scheme's syntax case as the R6RS macro system. The question of interaction with other language features, particularly the proposed R6RS library feature, is explicitly left open in SRFI:93.

Probably the best introduction to syntax case is Writing hygienic macros in Scheme with syntax-case.

From the Chez-Schemes website that provides a portable version of this macro system as library: The system is documented in Section 3.1 and Chapter 8 of The Scheme Programming Language, third edition and in Chapter 9 of the Chez Scheme User's Guide. The former has more introductory material and examples, while the latter documents some aspects of the system not covered by the former.

These scheme implementations provide syntax-case macros (with slight variations):

A portable version is available at

category-syntax category-macro