[racket] typed racket Procedure is not a function type

From: Ismael Figueroa Palet (ifigueroap at gmail.com)
Date: Thu Nov 24 11:22:22 EST 2011

I got the following error: "Type Checker: Cannot apply expression of type
Procedure, since it is not a function type"

What is the rationale behind this?

I'm constructing a function wrapper that uses apply, but I don't know how
to type a function in the most general way.

The code is like:

(define (wrapper fun . args) ...
   ... (apply fun args))

I expect functions to have any numbers/types of arguments but always return
a type B.

I tried something like (All (A) (A ... A -> B)) but it does not catch all
cases... so I tried to use the type Procedure, which according to the
documentation "is the supertype of all function types."

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20111124/ae015753/attachment.html>

Posted on the users mailing list.