syntax-rules

うう…まだ semantics で誤解してたところが出てくる…

[11/06 より]
Template 内で束縛された識別子は隠される。それだけだと置換後にも verbatim で残る識別子を template 内に書くことができない (else とか => とか) ので、syntax-rules form の始めの で、置換・自由変数解決の対象から除く識別子を指定することができる。

[12/11 より]
を使ってわざと hygienicity を回避した code が動かん

に入れると、pattern variable になることが抑止される。つまり に載っているものは、通常の変数として束縛先の location も含めて比較される。Symbol としてではない。

したがって が影響するのは match 時のみで、置換後に verbatim に (symbol として) 残るというのは間違っている。 に載せるのは hygienicity を破るためではなくて (破る手段は一切提供されない)、

  • 内に symbol s を置きたい;
  • s に wildcard 兼 parameter として働いてもらっては困る (=> とか、ただしそれは caller の側でいつでもその symbol を新たに束縛することで override できる) かつ