Thanks ... was show stopper.<br><br><div class="gmail_quote">On Wed, Aug 1, 2012 at 1:45 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">This looks like something that should work -- I&#39;m not sure why TR<br>
thinks that `Nothing` is the right type to infer for the second<br>
parameter to the `Collection` type.  However, changing the last line<br>
to:<br>
<br>
  (((inst Collection-append D C) coll) elem))<br>
<br>
makes it typecheck.<br>
<div><div class="h5"><br>
On Wed, Aug 1, 2012 at 12:17 PM, Ray Racine &lt;<a href="mailto:ray.racine@gmail.com">ray.racine@gmail.com</a>&gt; wrote:<br>
&gt; The following gives an error of &quot;Expected Nothing, but got D in elem.&quot;<br>
&gt; Type checking error?<br>
&gt;<br>
&gt; #lang typed/racket/base<br>
&gt;<br>
&gt; (struct: (D C) Collection ([append   : (D -&gt; Void)]<br>
&gt;                            [build    : (-&gt; C)]))<br>
&gt;<br>
&gt; (: List-Builder (All (D) -&gt; (Collection D (Listof D))))<br>
&gt; (define (List-Builder)<br>
&gt;<br>
&gt;   (: lst (Listof D))<br>
&gt;   (define lst &#39;())<br>
&gt;<br>
&gt;   (Collection (λ: ((datum : D))<br>
&gt;                 (set! lst (cons datum lst)))<br>
&gt;               (λ () lst)))<br>
&gt;<br>
&gt; (: build-Collection (All (D C) (Collection D C)-&gt; C))<br>
&gt; (define (build-Collection collection)<br>
&gt;   ((Collection-build collection)))<br>
&gt;<br>
&gt; (: append-Collection (All (D C) (Collection D C) D -&gt; Void))<br>
&gt; (define (append-Collection coll elem)<br>
&gt;   ((Collection-append coll) elem))<br>
&gt;<br>
&gt;<br>
</div></div>&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>
&gt;<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
sam th<br>
<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a><br>
</font></span></blockquote></div><br>