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

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Nov 18 12:12:51 EST 2014

I am sending you the status line from 

   DrRacket, version 6.1.1.5--2014-11-18(c4684c12/d) [3m].




On Nov 18, 2014, at 12:10 PM, Sam Tobin-Hochstadt <samth at cs.indiana.edu> wrote:

> With that program, I get this error message:
> 
>    unsaved editor:7:48: Type Checker: parse error in type; type
> variable must be used with ... variable: Y in: Y
> 
> Which you also got. What changed it from the parse error to the
> "unbound identifier" error?
> 
> Sam
> 
> On Tue, Nov 18, 2014 at 12:05 PM, Matthias Felleisen
> <matthias at ccs.neu.edu> wrote:
>> 
>> What I sent is the exact program that produced the attached error in today's drracket [updated around 10am].
>> 
>> 
>> 
>> 
>> On Nov 18, 2014, at 11:58 AM, Sam Tobin-Hochstadt <samth at cs.indiana.edu> wrote:
>> 
>>> No, I ran it, it barfed, and then I figured out what went wrong. Then
>>> I sent you an email with a fix. Unfortunately, that fix isn't enough
>>> to make the program type check. Partly, there's an internal error, but
>>> that's a missing case that will take work to support properly.
>>> 
>>> We can do better with the error message as well, by special casing ...
>>> in ->*, I think.
>>> 
>>> I don't, however, get the unbound identifier error that is in your
>>> screenshot. I just got the error message from your original post. Can
>>> you send the exact program that produced the error in the screenshot?
>>> 
>>> Sam
>>> 
>>> On Tue, 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.
>> 



Posted on the dev mailing list.