diff --git a/module/language/cps/intset.scm b/module/language/cps/intset.scm index fb42a1f21..9fc44bd59 100644 --- a/module/language/cps/intset.scm +++ b/module/language/cps/intset.scm @@ -203,7 +203,10 @@ (#f (let ((v (new-branch edit))) (vector-set! root idx v) v)) - (v (writable-branch v edit))))) + (v (let ((v* (writable-branch v edit))) + (unless (eq? v v*) + (vector-set! root idx v*)) + v*))))) (define (adjoin-branch! i shift root) (let* ((shift (- shift *branch-bits*)) (idx (logand (ash i (- shift)) *branch-mask*)))