<div>and shared it privately with me.<br></div><div><br></div>It is a bad habit. &nbsp;In the future I&#39;ll make my replies public to avoid redundancies.&nbsp;<div><br></div><div>Felix, thank you for your comments.&nbsp;</div><div><br>
</div><div>In Matthias&#39;s original proposed solution, X was unconstrained...</div><div><br></div><div>Is there a simple way to define the difference between a constrained and unconstrained variable? &nbsp;Is it the same as the difference between bound and unbound? &nbsp;Judging by your comment, it seems that making the distinction can be useful, but I don&#39;t know how to make it; further, I wouldn&#39;t appreciate the significance of the distinction even if I could....</div>
<div><br></div><div>Thanks,&nbsp;</div><div>Dave<br><br><div class="gmail_quote">On Mon, Nov 10, 2008 at 11:52 AM, Matthias Felleisen <span dir="ltr">&lt;<a href="mailto:matthias@ccs.neu.edu">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>
David found my mistake in the pedagogic exercise and share it privately with me.<div><div></div><div class="Wj3C7c"><br>
<br>
<br>
<br>
<br>
On Nov 10, 2008, at 2:43 PM, Felix Klock&#39;s PLT scheme proxy wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
David (cc&#39;ing Matthias and the plt-scheme list)-<br>
<br>
On Nov 7, 2008, at 11:57 AM, Matthias Felleisen wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 &nbsp;(X U -&gt; U) W U Nat -&gt; U<br>
<br>
4. The second argument is used as the first input to f so U = W<br>
<br>
 &nbsp;(X U -&gt; U) U U Nat -&gt; U<br>
<br>
5. No other constraints so we&#39;re fine<br>
<br>
And I may have made a mistake so check the calculation -- Matthias<br>
</blockquote>
<br>
Step 4 makes an incorrect deduction.<br>
<br>
I believe it should be:<br>
<br>
4. The second argument is used as the first input to f, so X = W<br>
<br>
 &nbsp;(X U -&gt; U) X U Nat -&gt; U<br>
<br>
The way I caught this: usually all of the parameters have some sort of relationship with other parts of the contract (on either side of the -&gt; arrow). &nbsp;In Matthias&#39;s original proposed solution, X was unconstrained, which raised a red flag in my mind.<br>

<br>
----<br>
<br>
Also, there are ways to revise the interface to natural-f that completely eliminate the X from the contract, which may make for an interesting design exercise.<br>
<br>
-Felix Klock<br>
<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br></div>