[racket] Puzzled about type inference

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue Aug 5 21:04:33 EDT 2014

Is TR's type checker organized in such a way that the decisions about
what types are given to constants decided as a separate (first) phase?
That is, no matter the context, is this constant:

   #(0 0)

always going to be given the type (Vector Integer Integer), assuming
there is no annotation?

If so, then it seems like TR could communicate that series of
decisions even when type checking fails and that that might be useful
for this program?

Robby


On Tue, Aug 5, 2014 at 7:53 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>
> You guys came up with some wonderful ideas.
>
> I think this particular one is easy to implement when
> the program type checks. But when it doesn't, what do
> you show?
>
> -- Matthias
>
>
>
>
>
> On Aug 5, 2014, at 6:13 PM, Alexander D. Knauth wrote:
>
>>
>> On Aug 5, 2014, at 6:06 PM, Raoul Duke <raould at gmail.com> wrote:
>>
>>>>>     add type declarations to variables and fields and function and method signatures.
>>>>
>>>> A good motto, which I shall endeavour to remember.
>>>
>>> what i do not get about TR and other languages (ocaml, haskell, etc.)
>>> is: there are these rules of thumb that you must somehow learn to keep
>>> yourself out of the weeds, but you only get to learn them the long and
>>> hard way. why don't the runtimes/ides
>>>
>>> (1) have a switch that says "hey, force me, the user, to put in type
>>> annotations by hand in the critical places, ok? so i don't have to
>>> suffer so much down the road, ok?"
>>>
>>> (2) put the inferred annotations into the code as it goes along so i
>>> can see what kind of crazy talk the inference engine is having with
>>> itself?
>>
>> 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?
>>
>>> ____________________
>>> Racket Users list:
>>> http://lists.racket-lang.org/users
>>
>>
>> ____________________
>>  Racket Users list:
>>  http://lists.racket-lang.org/users
>
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users


Posted on the users mailing list.