compile/syntax-match

Symbol: compile/syntax-match

Syntax: (syntax-match NAME (PATTERN TEMPLATE) ...)

Use-case: MATCH-dialect pattern rules, as compile/syntax-rules takes RULE-dialect ones. The value is the transformer.

Behaviour: As compile/syntax-rules, except that there is no LITERALS list and each pattern is written in explicit matcher declarations such as (VALUE x) or (REPEAT xs PATTERN min: 2); the template refers to the pattern’s slots. A pattern head spelling NAME is a slot bound to the symbol the macro was invoked as, so a renamed import still matches; any other head is a literal. See Macros and hygiene and koskari.matcher (surface heads).

Also: layout handler syntax-match.