<div dir="ltr">I wouldn&#39;t say you&#39;d do it for cons cells (they are special in the runtime). This is for structs that are declared in TR. You would add the field everywhere (or places where the programmer asks only).<div>
<br></div><div style>The boundaries have the information; that&#39;s how the contracts got inserted in the first place.</div><div style><br></div><div style>Robby</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sun, Jan 6, 2013 at 2:03 PM, Sam Tobin-Hochstadt <span dir="ltr">&lt;<a href="mailto:samth@ccs.neu.edu" target="_blank">samth@ccs.neu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Sun, Jan 6, 2013 at 2:55 PM, Robby Findler<br>
&lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt; wrote:<br>
&gt; What if you added an extra field to immutable values (ie all TR structs<br>
&gt; would have this hidden field) such that, when they passed across a boundary,<br>
&gt; the field got mutated to say what type it passed at. Then, when the value<br>
&gt; passed back into TR, TR could check to see if has this secret field and what<br>
&gt; the type was and then avoid more checking.<br>
<br>
</div>The problem is that this info isn&#39;t available anywhere (and I&#39;m not<br>
sure it&#39;s really sensible).  Consider the `cons` function (on lists<br>
only).  If you write `(cons &#39;hello empty)` in untyped code, what type<br>
should get inserted, and where should that be calculated?  This<br>
calculation can&#39;t really be done both automatically and correctly<br>
ahead of time, and would add a bunch more expense.<br>
<span class="HOEnZb"><font color="#888888"><br>
Sam<br>
</font></span></blockquote></div><br></div>