MiniML Type Inferencer

Due Monday, October 27, at 6:30pm.

In this assignment, you will build a type inferencer for MiniML. Your type inferencer should handle the full MiniML language, including recursive functions, polymorphic functions, nested polymorphic functions, and equality types, except for the following restrictions:

You can start the assignment from the version of MiniML in /cse/courses/csep505/03au/hw2; it also is available as a zip file for download. This is the same interpreter as used in the previous assignment, with the following extensions:

Your job is to provide implementations of the stubbed-out functions in typecheck.sml. You should carefully read the unify.sml and typecheck.sml files to understand how the unification data structures work and how to use them in the typecheck functions.  Of course, feel free to ask questions, the earlier the better.

As with the previous assignment, we have produced executables of our sample solution for Linux, Solaris, and Windows systems.

How and what to turn in

Turn in your assignment by emailing your typecheck.sml file as an attachment to andrei@cs.washington.edu.