id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,difficulty 1736,Incomplete SRFI-46/R7RS tail pattern support,Vasilij Schneidermann,,"I've run into an expansion error when trying to install {{{(chibi optional)}}}. It's using a tail pattern of the {{{(binding ... . rest)}}} kind. SRFI-46 only shows one tail pattern example of the {{{((binding ...) . rest)}}} kind, but R7RS is explicit about allowing both: {{{ ⟨transformer spec⟩ −→ (syntax-rules (⟨identifier⟩*) ⟨syntax rule⟩*) | (syntax-rules ⟨identifier⟩ (⟨identifier⟩*) ⟨syntax rule⟩*) ⟨syntax rule⟩ −→ (⟨pattern⟩ ⟨template⟩) ⟨pattern⟩ −→ ⟨pattern identifier⟩ | ⟨underscore⟩ | (⟨pattern⟩*) | (⟨pattern⟩+ . ⟨pattern⟩) | (⟨pattern⟩* ⟨pattern⟩ ⟨ellipsis⟩ ⟨pattern⟩*) | (⟨pattern⟩* ⟨pattern⟩ ⟨ellipsis⟩ ⟨pattern⟩* . ⟨pattern⟩) | #(⟨pattern⟩*) | #(⟨pattern⟩* ⟨pattern⟩ ⟨ellipsis⟩ ⟨pattern⟩*) | ⟨pattern datum⟩ }}} According to SRFI-46 alexpander does support both patterns just fine, the error message originates from synrules.scm. I've attached a file with simplified examples for both the working and not working pattern. I've also done a brief check across R7RS-compliant Scheme implementations, it seems that Cyclone doesn't support it either, while Chibi, Kawa, Gauche, Sagittarius and Foment do.",defect,closed,minor,6.0.0,core libraries,5.2.0,fixed,syntax-rules srfi-46,,