[racket-dev] parse errors in types, poly-dots cause me headaches

From: Alexander D. Knauth (alexander at knauth.org)
Date: Tue Nov 18 17:24:11 EST 2014

In terms of bugs, it’s probably related to this problem with call-with-values and poly-dots:
#lang typed/racket
(: f : (All (a ...) [(-> (values Any ... a)) -> Void]))
(define (f g)
  (call-with-values g void))
;=>
. . ../../Applications/Racket v6.1.1/share/pkgs/typed-racket-lib/typed-racket/typecheck/tc-app/tc-app-values.rkt:22:4: match: no matching clause for (tc-results '() (cons Any 'a))

On Nov 18, 2014, at 11:54 AM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:

> 
> On Nov 18, 2014, at 11:34 AM, Sam Tobin-Hochstadt <samth at cs.indiana.edu> wrote:
> 
>> On Tue, Nov 18, 2014 at 10:45 AM, Matthias Felleisen
>> <matthias at ccs.neu.edu> wrote:
>>> 
>>> It's quite possible that this is Eli's bug again, but boy this causes headaches:
>>> 
>>>> Type Checker: parse error in type;
>>>> type variable must be used with ...
>>>> variable: Y in: Y
>>> 
>>> And it points precisely to where Y is followed by ...
>> 
>> The problem here is that you're using ->* without using the syntax of
>> ->*.  Fortunately, this program doesn't need ->* at all.
>> 
>> Unfortunately, I don't know how to make this function type check yet,
>> but I'll keep playing with it.
> 
> 
> Are you blaming the victim here? Please run what I send out and experience how the type checker barfs on you. This is a bug report. 
> _________________________
>  Racket Developers list:
>  http://lists.racket-lang.org/dev



Posted on the dev mailing list.