<div dir="ltr"><div>Hi Bil,</div><div><br></div><div>I stumbled upon something interesting:</div><div><br></div><div>(let ()<br>  (define x #(0 0))<br>  (define (reset)<br>    (set! x #(0 0)))<br><br>  (set! (x 0) 1)<br>  (reset)<br>  (set! (x 1) 2)<br>  (reset)<br>  x)</div><br><div>The x being returned is #(0 2).</div><div><div><br></div><div>(Let&#39;s ignore the inefficient reset code).</div><div><br></div><div>I&#39;m guessing that in the reset lambda the #(0 0) is expanded to a cell which is captured in the lambda body &amp; reused later on.</div><div>Checking with guile, it complains about vector-set!: Wrong type argument in position 1 (expecting mutable vector): #(0 0)</div><div>So apparently in guile with (define x #(0 0)), x is an immutable vector.</div><div><br></div><div>Hope this is helpful, not like yesterday!<br></div></div></div>