[plt-scheme] macro question

From: Dave Herman (dherman at ccs.neu.edu)
Date: Wed Jun 11 11:39:45 EDT 2008

I'm pretty sure there are a couple such tools for HM languages. I played 
with SML.NET a while ago, which IIRC provides incremental type inference 
and gives you types of subexpressions when you hover over them. It was 
pretty brittle (and slooooow) when last I tried it, but I think it was 
just a proof-of-concept.

One of the UI issues is figuring out which subexpression the user wants 
type information for when they hover over a position in the program. It 
made it pretty frustrating as tiny movements of the mouse would totally 
change the feedback I was getting.


John Clements wrote:
> On Jun 10, 2008, at 9:29 AM, Neil Van Dyke wrote:
>> (I haven't had a chance yet to look at Typed Scheme, so please 
>> disregard if this doesn't make sense.)
>> What if the type inference info is presented to you as part of the 
>> normal view of the program?  It's there for you to read, but you just 
>> don't usually edit it yourself.
>> I don't know what DrScheme currently does for Typed Scheme, but... 
>> Inferred type info could be conveyed by overlaying the source code 
>> view, such as by inline annotations or maybe mouseovers.  
>> Visual-design-wise, there's an obvious HCI metaphor that might be 
>> used: inferred:express::ephemeral:concrete.  You can add an explicit 
>> type qualification by turning an ephemeral concrete and editing it.  
>> I'd imagine that feature useful for both pedagogic and practical use.
>> This would also make for another snazzy YouTube video. :)
> This sounds like a great tool/UI for dealing with HM-style inference.  I 
> wouldn't be surprised if something like this already existed for e.g. 
> Haskell.  I do recall Joe Wells giving a talk at some point on a 
> graphical tool that would illustrate the "flow of types" showing the 
> path along which a type A and a different type B were in collision.
> John Clements
> ------------------------------------------------------------------------
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.