This page is part of the web mail archives of SRFI 93 from before July 7th, 2015. The new archives for SRFI 93 contain all messages, not just those from before July 7th, 2015.
Hello everyone, and thanks to Kent Dybvig for making this SRFI available. The design of syntax transformation in R6RS is not a simple task, with various very good designs - explicit renaming, syntactic closures and SYNTAX-CASE - being available. I'm not much into all of this, so I'll try to restrict myself to some specific problems I can see in the SRFI itself. Section 3 mentions "singleton identifiers" as a possible form for syntax abstractions, and refers to section 3.6 for more information. I couldn't find this in 3.6. The interpretation of DEFINE-SYNTAX according to section 3.3 seems to be difficult to integrate with the expansion of internal DEFINEs into LETREC* forms. Would it be possible to add a definition of the full expansion process in the SRFI here? According to section 3.4, transformers are procedures which accept a single argument. Not only is this incompatible with existing systems (such as explicit renaming), it is also problematic for later extension. I think it would be more useful to use a new form here, such as (SYNTAX-TRANSFORMER STX (SYNTAX-CASE STX ...)) or (SYNTAX-LAMBDA (STX) (SYNTAX-CASE STX ...)). Variable transformers are introduced in the same section. The whole purpose of this seems to be to allow a generalized SET! similar to SRFI-17. This seems somewhat kludgey, and not very much related to the purpose of syntax transformation. What is the rationale to define a generalized SET! together with other syntax transformations, and not as a specific extension to SET!? Finally, section 3.6 mentions #(pattern*) etc. as a possible pattern. R5RS does not allow vector literals, they do have to be quoted. Does this mean one can define #(foo) to be semantically meaningful syntax in R6RS? What is the rationale for allowing this? Regards, -- Jorgen -- ((email . "forcer@xxxxxxxxx") (www . "http://www.forcix.cx/") (gpg . "1024D/028AF63C") (irc . "nick forcer on IRCnet"))