diff --git a/scheme/cyclone/macros.sld b/scheme/cyclone/macros.sld index 24e6dca3..3f31a09b 100644 --- a/scheme/cyclone/macros.sld +++ b/scheme/cyclone/macros.sld @@ -109,8 +109,14 @@ (cond ((const? expr) expr) ((null? expr) expr) - ;((prim? expr) expr) - ((quote? expr) expr) + ((quote? expr) + (let ((atom (cadr expr))) + ;; Clean up any renamed symbols that are quoted + ;; TODO: good enough for quoted pairs or do + ;; we need to traverse those, too? + (if (ref? atom) + `(quote ,(clean atom bv)) + expr))) ((define-c? expr) expr) ((ref? expr) ;; if symbol has been renamed and is not a bound variable,