Hi, <br><br>&nbsp; I&#39;m fresh to contracts. Here is my problem:<br><br>I just want to pass the contracts check on the following definition:<br><br>&nbsp;(define test (lambda (url)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (post-impure-port url data rhead)))
<br>&nbsp; <br>(provide/contract (test (-&gt; url? input-port?)))<br><br>(call/input-url (string-&gt;url &quot;<a href="https://210.77.16.29/php/user_login.php">https://210.77.16.29/php/user_login.php</a>&quot;) test display-pure-port)
<br><br>or even more simplified:<br><br>(call/input-url (string-&gt;url &quot;<a href="https://210.77.16.29/php/user_login.php">https://210.77.16.29/php/user_login.php</a>&quot;) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (lambda (url)<br>
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (post-impure-port url data rhead)))&nbsp;  <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; display-pure-port)<br><br>Every time, I get:<br>&nbsp; (case-&gt;<br>&nbsp;&nbsp;&nbsp; (-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; url?<br>&nbsp;&nbsp;&nbsp;&nbsp; (case-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? input-port?)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? (listof string?) input-port?))<br>&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; input-port? any)<br>&nbsp;&nbsp;&nbsp;&nbsp; any)<br>&nbsp;&nbsp;&nbsp; (-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; url?<br>&nbsp;&nbsp;&nbsp;&nbsp; (case-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? input-port?)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? (listof string?) input-port?))
<br>&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; input-port? any)<br>&nbsp;&nbsp;&nbsp;&nbsp; (listof string?)<br>&nbsp;&nbsp;&nbsp;&nbsp; any))<br>on call/input-url; expected a procedure that accepts 2 arguments, given: #&lt;procedure:test&gt;<br><br>If I change the definition to <br>(call/input-url (string-&gt;url &quot;
<a href="https://210.77.16.29/php/user_login.php">https://210.77.16.29/php/user_login.php</a>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (lambda (url rhead)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (post-impure-port url data rhead)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display-pure-port<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br>. . ssl-url.scm:40:4: /home/yug/ssl-url.scm:40:4: top-level broke the contract <br>&nbsp; (case-&gt;<br>&nbsp;&nbsp;&nbsp; (-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; url?<br>&nbsp;&nbsp;&nbsp;&nbsp; (case-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? input-port?)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? (listof string?) input-port?))<br>&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; input-port? any)<br>&nbsp;&nbsp;&nbsp;&nbsp; any)<br>&nbsp;&nbsp;&nbsp; (-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; url?<br>&nbsp;&nbsp;&nbsp;&nbsp; (case-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? input-port?)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; url? (listof string?) input-port?))
<br>&nbsp;&nbsp;&nbsp;&nbsp; (-&gt; input-port? any)<br>&nbsp;&nbsp;&nbsp;&nbsp; (listof string?)<br>&nbsp;&nbsp;&nbsp;&nbsp; any))<br>on call/input-url; expected a procedure that accepts 1 arguments, given: #&lt;procedure&gt;<br>&gt;<br><br>How can I define my function?<br><br>Thanks
<br clear="all"><br>-- <br>Gang