Le 03/10/2022 à 15:41, Frank Terbeck a écrit :
I get the point, but I think it's sort of surprising, when everything in the macro-language is otherwise quite literal, to my understanding. It may be warranted to point this out in the documentation that this is a side effect of hygienic macros, I think.
It *is* extensively documented. https://www.gnu.org/software/guile/manual/html_node/Hygiene-and-the-Top_002dLevel.html#Hygiene-and-the-Top_002dLevel
This behaviour is probably explained in one of the ‘syntax-case’ and ‘datum->syntax’ examples in the manual, but it wasn't clear to me at all. Not sure how, but I think there's room for improvement here. :) Thanks for clearing this up! And feel free to correct anything I got wrong in what I wrote in the above.
I think it is worth taking a look not just at the Guile documentation but also at the Scheme standards, which are more verbose on the details of syntax->datum and such. See
http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-13.html