Re: Some initial comments
Daphne Preston-Kendal 21 Sep 2026 18:55 UTC
On 21 Sep 2026, at 09:10, Andrew Tropin <xxxxxx@trop.in> wrote:
> Have a few more questions.
>
> (let ((metadata identity))
> (test "my test" ()
> (metadata '((default . meta)))
>
> (is #t)))
>
> will silently "remove" metadata from test. Is it expected behavior for
> scheme macro?
Yes.
> Do we need to warn user of the macro somehow if they do
> it?
No.
> Could you share some examples of similar macros in the wild? They can
> help me to better understand how idiomatic scheme macros look like.
> Previously I thought that `(guix records)` were idiomatic, but it seems
> they are not.
The standard Scheme ‘cond’ and ‘case’ syntaxes work like this (the ‘else’ and ‘=>’ auxiliary syntax keywords), as do the auxiliary syntax keywords of R6RS define-record-type <https://r6rs.org/corrected/html/r6rs-lib/r6rs-lib-Z-H-7.html#node_sec_6.2>.
Daphne