Marius Vollmer writes: > > Uhh, intuitively I'd say that this is wrong behavior. One that's guile specific is let-optional and let-keywords, eg. (use-modules (ice-9 optargs)) (let () (let-keywords '() #f () (define localvar 123)) localvar) => 123 which could be fixed fairly easily, * optargs.scm (let-optional-template, let-keywords-template): Change "(begin body)" to "(let () body)" for empty bindings, since the former lets syntactically internal defines in body leak out to the surrounding environment.