Harry,<br><br>Impersonators are used to implement some of the contracts, especially higher order contracts for mutable values such as box/c and vector/c.  They &quot;impersonate&quot; a box or vector by intercepting -ref and -set! operations and wrapping the contained value in a contract after getting it / before setting it.<br>

<br clear="all">Carl Eastlund<br>
<br><div class="gmail_quote">On Thu, Jan 19, 2012 at 4:19 PM, Harry Spier <span dir="ltr">&lt;<a href="mailto:vasishtha.spier@gmail.com">vasishtha.spier@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>Dear list members,<br></div><div><br></div><div>In the Racket reference under &quot;reflection and security&quot; they give the functionality of &quot;impersonators&quot;.  As far as I can see there is no mention in the Guide.  I can see what they do, but I&#39;m unclear what they are used for.  Could someone give me a relatively simple example of where and what they would be used for.</div>


<div><br></div><div>Many thanks,</div><span class="HOEnZb"><font color="#888888"><div>Harry Spier<br></div></font></span></blockquote></div><br>