Subject: bug#21379: datum->syntax chokes on lists of syntax objects

From: Mark H Weaver <[email-masked]>
Date: Tue, 01 Sep 2015 21:26:53 -0400

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-masked] (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-masked]>
> 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