<div>Giving special consideration to Eli and YC&#39;s perspectives, I&#39;ve come up with the following way out of this problem.</div><div><br>I found a way to provide a global hook that is tasteful to me. I&#39;ve created &quot;dynamic/c&quot;. Here&#39;s a little example:</div>
<div><br></div><div><div>Examples:</div><div>  (define p (make-parameter any/c))</div><div>  (define c (dynamic/c string? p number?))</div><div>  &gt; (contract c &quot;123&quot; &#39;pos &#39;neg)</div><div>  pos broke the contract</div>
<div>    (dynamic</div><div>     string?</div><div>     #&lt;procedure:parameter-procedure&gt;</div><div>     number?)</div><div>   on eval:5:0; expected &lt;number?&gt;, given: &quot;123&quot;</div><div>  &gt; (p (coerce/c string-&gt;number))</div>
<div>  &gt; (contract c &quot;123&quot; &#39;pos &#39;neg)</div><div>  123</div><div>  &gt; (contract c &quot;123a&quot; &#39;pos &#39;neg)</div><div>  pos broke the contract</div><div>    (dynamic</div><div>     string?</div>
<div>     #&lt;procedure:parameter-procedure&gt;</div><div>     number?)</div><div>   on eval:8:0; Coercion failed</div><div><br></div></div><div>The Web Server will define response/c as (dynamic/c any/c current-response/c response?) and provide the current-response/c parameter for customization. The default will be no coercion, but Xexpr conversion will be easily accessible. A compatibility library will automatically set current-response/c appropriately.</div>
<div><br></div><div>Attached is the new compatibility README.</div><div><br></div><div>I hope this will satisfy all.</div><div><br></div><div>Jay</div><div><br></div><br>-- <br>Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu" target="_blank">jay@cs.byu.edu</a>&gt;<br>
Assistant Professor / Brigham Young University<br><a href="http://faculty.cs.byu.edu/~jay" target="_blank">http://faculty.cs.byu.edu/~jay</a><br><br>&quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>