I have been up to a number of different things over the past few weeks.

I've gotten involved with the Standard ML »Extended Basis Library« project. Though at the moment it seems to mostly be Vesa Karvonen and myself. Essentially it builds upon the Standard ML Basis Library by refactoring some things, providing abstractions that are missing, and extending some of the original signatures to include »missing« functionality. Even though I currently do not expect to commit myself to SML much longer than it takes to finish InforML, many of the ideas in the design of the extended basis are interesting. Plus, it allows me to factor some code out of InforML that really belongs in a »standard« library.

I've started using Noweb in the development of InforML. While I have been using it to document some of the code better, for example, placing relevant inference rules near the code that implements them, it has another benefit. Because Noweb »tangling« code, it also allows me to group code together more logically than is possible if sticking to linear code with convoluted recursive dependencies.

I am still debugging away on InforML's type inference code. However, in the past week or so I have mostly come to the conclusion that if I want to be sure the label constraint solving part of inference is correct that I am going to have to do something like HM(X). However, I think that I can continue solving type constraints incrementally. It is still going to require some care to make sure I generate a reasonably tractable set of constraints.