Consider the following expression in R6RS Scheme:
(syntax ())
When I type this expression into Racket, a (wrapped) syntax object is returned. On the other hand, the same expression yields the (unwrapped) empty list in Chez Scheme.
I am wondering which system is in conformance with the R6RS (or whether both behaviors are allowed by the standard). The relevant paragraph in R6RS is Parsing input and producing output. There, it says:
The output produced by syntax is wrapped or unwrapped according to the following rules ... the copy of any portion of not containing any pattern variables is a wrapped syntax object.
In (syntax ()) the template does not contain any pattern variables, so it seems that the result should be a wrapped syntax object and that Racket is right.
On the other hand, R. Kent Dybvig, the author of Chez Scheme, is one of the inventors of the syntax-case system so one would expect Chez Scheme to follow the standard closely.