I got the following error: &quot;Type Checker: Cannot apply expression of type Procedure, since it is not a function type&quot;<br><br>What is the rationale behind this?<br><br>I&#39;m constructing a function wrapper that uses apply, but I don&#39;t know how to type a function in the most general way.<br>
<br>The code is like:<br><br>(define (wrapper fun . args) ... <br>   ... (apply fun args))<br><br>I expect functions to have any numbers/types of arguments but always return a type B.<br><br>I tried something like (All (A) (A ... A -&gt; B)) but it does not catch all cases... so I tried to use the type Procedure, which according to the documentation &quot;is the supertype of all function types.&quot;<br>
<br>Thanks<br>-- <br>Ismael<br><br>