InforML progress report

Since I worked out the proper monad implementation strategy and added the monadic syntactic sugar to SML/NJ, work has been moving along quite well.

I did extend the monad so that it has an additional »zero« element that allows for non-backtracking failure. That way a fatal error does not get masked by a non-deterministic choice. A good example of this is if some disjunct in performing a label subsumption check fails because it encounters an unknown variable, it shouldn't just try the other disjunction and ignore the fact that somehow an unknown variable wandered into the program.

Having things written in a monadic style is making the implementation way more pleasant than it would otherwise. While I could have in AspectML used global reference cells to avoid having to pass bits around, that would have required some annoying management with the backtracking that occurs in InforML.

Anyway, my hope is to have the rest of type inference mostly working in time for a video-conference with Stephanie later this coming week. At this rate, submitting to ICFP and defending in August looks pretty realistic.

Leave a Comment

Powered by WP Hashcash