ML-TID Type Interface Debugger

I've dreamed / complained about the lack of such a thing for ages. Glad somebody with brains and motivation has started to do something about it: ML-TID: A Type Inference Debugger for ML in Education.

Student programmers can struggle to understand how their code is wrong, while expert programmers become frustrated when the safety mechanisms of a language render programming more cumbersome. Across the spectrum of languages, those with type inference encourage the user to elide information that would otherwise catch errors at their source, making them more difficult to resolve.
In this paper, we present a novel debugging tool for ML that should lower the barrier to entry. ML-TID1 exposes a standard debugging UI that allows the user to step-through the ML type inference algorithm in a controlled environment. We present details of the concept and implementation and results from a study of 20 undergraduates.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Step-based debugging for

Step-based debugging for debugging type inference? This is just wrong...a probing interface would clearly work much better.


I'm glad you (and hopefully others?) have also thought about such things and have seen bad vs. better ways to go about this. Here's hoping such memes get out more into the PLT community.

I spend a lot of time making

I spend a lot of time making imperative sequential code amenable to declarative programming techniques (e.g. by sucking out the time), so I get a bit irritable when I see someone take what is already fairly declarative (type inference) and apply sequential debugging techniques to it....instead.

don't fully agree

give me a complicated makefile and i would like to have a stepping debugger for it.