Little Any is my new best friend.<br><br><div class="gmail_quote">On Thu, Aug 9, 2012 at 4:50 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>
You can use wider types. It is one thing to be able to formulate types at all and another to formulate the most descriptive ones, right?<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Aug 9, 2012, at 3:27 PM, Neil Toronto wrote:<br>
<br>
&gt; On 08/09/2012 12:52 PM, Ray Racine wrote:<br>
&gt;&gt; Noticed here <a href="http://www.ccs.neu.edu/home/samth/adapt/Current_Status.html" target="_blank">http://www.ccs.neu.edu/home/samth/adapt/Current_Status.html</a><br>
&gt;<br>
&gt; I had no idea someone had been assigned. Cool!<br>
&gt;<br>
&gt;&gt; That the Plot collection still awaits porting to TR.  Has any partial<br>
&gt;&gt; work been done, maybe languishing in a github repo somewhere, that can<br>
&gt;&gt; be leveraged?<br>
&gt;<br>
&gt; Are you volunteering? :)<br>
&gt;<br>
&gt; It&#39;s only possible now that TR has support for keyword arguments.<br>
&gt;<br>
&gt; There&#39;s one issue that could cause problems: some renderer-producing functions, like `points&#39;, accept lists of vectors as arguments. If the data argument to `points&#39; had a nice, general type like<br>
&gt;<br>
&gt;   (Listof (Vectorof Real Real))<br>
&gt;<br>
&gt; then applying `points&#39; to<br>
&gt;<br>
&gt;   &#39;(#(0.0 1.0) #(1.0 2.2))<br>
&gt;<br>
&gt; wouldn&#39;t typecheck. The problem is that TR thinks `points&#39; might change that 0.0 to 0, which would make the original argument type (Listof (Vector Float Float)) incorrect. It thinks Bad Things could happen. (Technically, a vector is &quot;invariant&quot;.)<br>

&gt;<br>
&gt; I can think of two solutions right now:<br>
&gt;<br>
&gt; 1. Wait for a Const type constructor or similar.<br>
&gt;<br>
&gt; 2. Change the contract of `points&#39; to accept lists of pairs, sequences or a specialized data type.<br>
&gt;<br>
&gt; I think the contract of `points&#39; should be changed anyway, so users can send it any kind of sequence. Might as well make it current-TR-friendly at the same time.<br>
&gt;<br>
&gt; Neil ⊥<br>
&gt;<br>
&gt; ____________________<br>
&gt; Racket Users list:<br>
&gt; <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br>
</div></div><br>____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br>