[ The Types Forum (announcements only),
We are happy to announce the first public release of our type error
slicing software for the SML programming language.
All information can be found at this URL:
The aim of our type error slicer is to provide useful type error
reports for pieces of code written in SML. Our type error slicer:
* Identifies all of the program points that contribute to a type
error (including the spot with the actual programming error that
caused the type error),
* Highlights these program points in the original, unchanged source
* Avoids showing internal details of the operation of the type
At the URL mentioned above, you can find a compiled package of the
software that is ready to be used. The package contains:
* Installation instructions and an installation shell script.
* A compiled SML binary for Linux on the i386 architecture. We
have tested this on CentOS 5.3, Fedora 7, Ubuntu 9.04 and
* Emacs Lisp code that extends GNU Emacs with commands that
highlight source code with information about type error slices.
We have tested this with GNU Emacs versions 22.1, 22.3 and 23.1.
* A 19 page user guide containing detailed explanations of how to
use the software and interpret the type error slices.
* A very large number of sample test cases.
* We have not yet built the software for other operating systems
* The only currently supported user interface is via GNU Emacs (or
our web demo).
* Some features of the SML language are not parsed (the user will be
notified if this is the case), and some type errors are not yet
discovered (the user will need to rely on their usual type checker
in these cases). Notable spots where the implementation is
incomplete are functors, overloading, equality types, and fixity
* The details of the SML basis library are woefully incomplete
(fortunately the user can add any additional details they are
* The software does not currently scale well to very large programs
(we are still improving this). It is currently suitable for small
programs and use in teaching.
* We have some known issues with statuses of long identifiers
and exceptions which yields wrong error reports.
There is also a web demonstration of the software with over 270 sample
test cases, so you can try without needing to install the software.
Vincent Rahli and Joe Wells