Hi Taylan, You're right that this is a documentation bug, but the intended restriction is that the first argument to 'datum->syntax' must be an identifier, as specified in section 12.6 of the R6RS library report. In fact, in R6RS, the name of the first formal argument is 'template-id'.
'datum-syntax' can't do its job properly with a list structure containing multiple identifiers, because in general, each of those identifiers may have originated in a different place. [email protected] (Taylan Ulrich "Bayırlı/Kammer") writes: > From 9578ee36ef005f0b96c1d5b120f11c178e341775 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?= > <[email protected]> > Date: Sun, 30 Aug 2015 10:24:52 +0200 > Subject: [PATCH] Amend datum->syntax documentation. > > * doc/ref/api-macros.texi (Syntax Case): Mention that the first argument > to datum->syntax is invalid if it's a compound syntax object, except > when also created with datum->syntax. > --- > doc/ref/api-macros.texi | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > > diff --git a/doc/ref/api-macros.texi b/doc/ref/api-macros.texi > index c2910a4..9c1f023 100644 > --- a/doc/ref/api-macros.texi > +++ b/doc/ref/api-macros.texi > @@ -618,7 +618,12 @@ But they can, if we explicitly introduce a binding via > @code{datum->syntax}. > > @deffn {Scheme Procedure} datum->syntax for-syntax datum > Create a syntax object that wraps @var{datum}, within the lexical context > -corresponding to the syntax object @var{for-syntax}. How about changing the first formal argument name to 'template-id' and changing the words "syntax object" to "identifier"? Thanks! Mark
