I'm early in my Scheme journey, but here's a suggested fix: (define-syntax-rule (with-readline-completion-function completer expr ...) "With @var{completer} as readline completion function, call @var{expr ...}." (let ((old-completer *readline-completion-function*)) (dynamic-wind (lambda () (set! *readline-completion-function* completer)) (lambda () expr ...) (lambda () (set! *readline-completion-function* old-completer)))))
(export with-readline-completion-function)