<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>I don't think so. What it has is a declaration that says "don't check the types."&nbsp;</div><div><br></div><div>What I am proposing is&nbsp;</div><div><br></div><div>&nbsp;-- check the types&nbsp;</div><div>&nbsp;-- and generate an untyped version from this file.&nbsp;</div><div><br></div><div>#lang typed/racket #:check-and-generate untyped-foo.rkt&nbsp;</div><div>(: x Integer)</div><div>(define x 10)</div><div><br></div><div>would generate&nbsp;</div><div><br></div><div>#lang racket&nbsp;</div><div>(define x 10)</div><div><br></div><div>IF and ONLY IF the original file type checks. The original file could also be used as a TR library.&nbsp;</div><div><br></div><div>Perhaps the API isn't quite right.&nbsp;</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><br><div><div>On Dec 17, 2012, at 3:49 PM, Robby Findler wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">I think TR does have some of this facility already.<div><br></div><div>Robby</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Dec 17, 2012 at 2:41 PM, Matthias Felleisen <span dir="ltr">&lt;<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@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"><br>
When Neil created his library, I proposed that he create one piece of source code and 'generate' both the typed and untyped module from it.<br>
<br>
If we foresee this kind of library to become more common, we should probably provide the capability as an abstraction from TR.<br>
<span class="HOEnZb"><font color="#888888"><br>
-- Matthias<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
On Dec 17, 2012, at 3:27 PM, Robby Findler wrote:<br>
<br>
&gt; I've long thought something along these lines is a good idea, but perhaps what I think is a good idea isn't what Matthias and Sam think is the bad idea.<br>
&gt;<br>
&gt; I think that it makes sense for 'require' in typed-racket to look in a different place than 'require' in untyped racket looks so that one can write the same require spec (in both the docs and the code) and have two versions of the same library, one that is typed and one that isn't typed. Then, then library writer, if they choose, can decide who pays what for going (or not) across the boundary between typed and untyped. (Or maybe submodules would be better.)<br>

&gt;<br>
&gt; I think this is already happening in TR anyways, when I write<br>
&gt;<br>
&gt; &nbsp; (require racket/list)<br>
&gt;<br>
&gt; I don't get the same file being loaded when that is in a TR program as when it is in a R program.<br>
&gt;<br>
&gt; If the convention how the names get adjusted and whatnot is just documented, then every library writer can provide both versions.<br>
&gt;<br>
&gt; And yes, there are details I'm glossing over here, but just doing nothing isn't helping.<br>
&gt;<br>
&gt; Robby<br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; _________________________<br>
&gt; &nbsp;Racket Developers list:<br>
&gt; &nbsp;<a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
<br>
</div></div></blockquote></div><br></div>
</blockquote></div><br></body></html>