On Mon, Jul 5, 2010 at 10:09 AM, Jose A. Ortega Ruiz <j...@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 sa...@ccs.neu.edu _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users