It doesn't seem to be a bug in syntax-rules. It seems to appear whenever
two consecutive let forms are used with an assoc list argument which starts
with identical elements:
(begin
(let ((l '((a . X)(b . Y)(c . 7
(assoc-set! l 'b 'Z))
(let ((l '((a . X)(b . Y
l))
===> ((a . X)
Sorry to bug, I can't figure out why "sval" in the second evaluation of "sect"
is bound to the "sval" from the first evaluation of "sect". Anyone
understand? This is guile 2.0.11.-- Matt
;; bug_syntax.scm
(define-syntax sect
(syntax-rules ()
((sect ...)
(let ((sval '(