[racket] problem (?) with typed racket

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Mon Jul 5 10:49:07 EDT 2010

On Mon, Jul 5, 2010 at 10:09 AM, Jose A. Ortega Ruiz <jao at gnu.org> wrote:
>
> but, if we want to define a non-procedural value in an analogous fashion:
>
>  (: carrow (All (E) (C (Arrow E))))
>  (define carrow
>    (C #{compose-arrows :: ((Arrow E) (Arrow E) -> (Arrow E))}))
>
> the type checker complains that E is an unbound type name, for all
> occurrences of E inside the define form.

Right now, type variables bound by `All' in the type declaration are
only in scope for procedure bodies, not the general RHS of defintions.
 This is just because of the how the implementation works, so there's
not a particularly good reason for it, and I plan to make this work
eventually.
-- 
sam th
samth at ccs.neu.edu


Posted on the users mailing list.