Yes, there seems to be a bug with how type variables are scoped with `#:forall`. I recommend using this syntax, which works fine:
(: foo (All (A) (->* ((-> Real A)) (Boolean) (Listof A) ))) (define (foo f [b #t]) (list (f 0.1) (f 0.2))) But if you can open an issue on github for your program as well, that would be great. Sam On Sun, Nov 8, 2015 at 4:32 PM Antonio Menezes Leitao < [email protected]> wrote: > BTW, the following example typechecks: > > (define #:forall (A) (foo [f : (Real -> A)] [b : Boolean]) : (Listof A) > (list (f 0.1) (f 0.2))) > > but the following example generates a lot of complaints: > > (define #:forall (A) (foo [f : (Real -> A)] [b : Boolean #t]) : (Listof A) > (list (f 0.1) (f 0.2))) > > Welcome to DrRacket, version 6.3.0.3--2015-11-06(58c919c/a) [3m]. > Language: typed/racket; memory limit: 4096 MB. > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: parse error in type; > type name `A' is unbound in: A > . Type Checker: Summary: 8 errors encountered in: > A > A > A > A > A > A > A > A > > Best, > António. > > On Sun, Nov 8, 2015 at 7:31 PM, Sam Tobin-Hochstadt <[email protected]> > wrote: > >> Thanks for the report! I've got a fix here, which I'm still testing: >> https://github.com/racket/typed-racket/pull/238 >> >> Sam >> >> On Sun, Nov 8, 2015 at 7:16 AM Antonio Menezes Leitao < >> [email protected]> wrote: >> >>> Hi, >>> >>> The following example works fine: >>> >>> #lang racket >>> >>> (define v (vector 1 2 3)) >>> (for ([t (in-vector v 0 2)]) >>> (displayln t)) >>> >>> However, in Typed Racket, it does not: >>> >>> Welcome to DrRacket, version 6.3.0.3--2015-11-06(58c919c/a) [3m]. >>> Language: typed/racket; memory limit: 4096 MB. >>> . Type Checker: missing type for identifier; >>> consider using `require/typed' to import it >>> identifier: normalise-inputs >>> from module: for.rkt in: (for ((t (in-vector v 0 2))) (displayln t)) >>> . Type Checker: type mismatch >>> expected: VectorTop >>> given: Any in: (for ((t (in-vector v 0 2))) (displayln t)) >>> . Type Checker: Summary: 2 errors encountered in: >>> (for ((t (in-vector v 0 2))) (displayln t)) >>> (for ((t (in-vector v 0 2))) (displayln t)) >>> >>> >>> Best, >>> António. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Racket Developers" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/racket-dev/CAJQmiZWNoUkEB7bDyK9E5mUE3WdY40UC8eyTKnP4d5JwWjaKQw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/racket-dev/CAJQmiZWNoUkEB7bDyK9E5mUE3WdY40UC8eyTKnP4d5JwWjaKQw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> > -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/CAK%3DHD%2BbRdbSh4q%2B1h-rXLc09-0FR0xxcoJ5KodHtQzcTqotC-g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
