<p dir="ltr">I think that it would work better to:</p>
<p dir="ltr">a. Associate the information with a syntax object rather than a location.<br>
b. Provide an sexp rather than a string, so that it can be formatted appropriately by DrRacket.</p>
<p dir="ltr">Sam</p>
<div class="gmail_quote">On Aug 12, 2014 12:15 PM, "Robby Findler" <<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
That would be great. I think you'd just want to tell check syntax "at<br>
this position, here is a string to show the user". Is that ok? (And<br>
you'd put newlines in the string to format it, I guess?)<br>
<br>
Robby<br>
<br>
On Tue, Aug 12, 2014 at 8:55 AM, Sam Tobin-Hochstadt<br>
<<a href="mailto:samth@cs.indiana.edu">samth@cs.indiana.edu</a>> wrote:<br>
> [rather late]<br>
><br>
> Typed Racket knows quite a bit about the types of expressions, not<br>
> just constants, even when type checking fails. I think we could use a<br>
> logging mechanism similar to the one that allows check syntax to work<br>
> even when type checking fails to communicate types of sub-expressions<br>
> to DrRacket.<br>
><br>
> There are some cases where expressions are typechecked twice that<br>
> might cause problems, but in general this should be pretty easy.<br>
><br>
> Sam<br>
><br>
> On Tue, Aug 5, 2014 at 9:04 PM, Robby Findler<br>
> <<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>> wrote:<br>
>> Is TR's type checker organized in such a way that the decisions about<br>
>> what types are given to constants decided as a separate (first) phase?<br>
>> That is, no matter the context, is this constant:<br>
>><br>
>>    #(0 0)<br>
>><br>
>> always going to be given the type (Vector Integer Integer), assuming<br>
>> there is no annotation?<br>
>><br>
>> If so, then it seems like TR could communicate that series of<br>
>> decisions even when type checking fails and that that might be useful<br>
>> for this program?<br>
>><br>
>> Robby<br>
>><br>
>><br>
>> On Tue, Aug 5, 2014 at 7:53 PM, Matthias Felleisen <<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>> wrote:<br>
>>><br>
>>> You guys came up with some wonderful ideas.<br>
>>><br>
>>> I think this particular one is easy to implement when<br>
>>> the program type checks. But when it doesn't, what do<br>
>>> you show?<br>
>>><br>
>>> -- Matthias<br>
>>><br>
>>><br>
>>><br>
>>><br>
>>><br>
>>> On Aug 5, 2014, at 6:13 PM, Alexander D. Knauth wrote:<br>
>>><br>
>>>><br>
>>>> On Aug 5, 2014, at 6:06 PM, Raoul Duke <<a href="mailto:raould@gmail.com">raould@gmail.com</a>> wrote:<br>
>>>><br>
>>>>>>>     add type declarations to variables and fields and function and method signatures.<br>
>>>>>><br>
>>>>>> A good motto, which I shall endeavour to remember.<br>
>>>>><br>
>>>>> what i do not get about TR and other languages (ocaml, haskell, etc.)<br>
>>>>> is: there are these rules of thumb that you must somehow learn to keep<br>
>>>>> yourself out of the weeds, but you only get to learn them the long and<br>
>>>>> hard way. why don't the runtimes/ides<br>
>>>>><br>
>>>>> (1) have a switch that says "hey, force me, the user, to put in type<br>
>>>>> annotations by hand in the critical places, ok? so i don't have to<br>
>>>>> suffer so much down the road, ok?"<br>
>>>>><br>
>>>>> (2) put the inferred annotations into the code as it goes along so i<br>
>>>>> can see what kind of crazy talk the inference engine is having with<br>
>>>>> itself?<br>
>>>><br>
>>>> I’m just wondering, would it be possible for DrRacket to do something where you can right-click a variable or expression or something and one of the options is to see what the inferred type is?<br>
>>>><br>
>>>>> ____________________<br>
>>>>> Racket Users list:<br>
>>>>> <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
>>>><br>
>>>><br>
>>>> ____________________<br>
>>>>  Racket Users list:<br>
>>>>  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
>>><br>
>>><br>
>>> ____________________<br>
>>>   Racket Users list:<br>
>>>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
>><br>
>> ____________________<br>
>>   Racket Users list:<br>
>>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div>