We are happy to announce the release of the version 0.4 of our type<br>error slicing software for the SML programming language.<br><br>Major improvements over the previous release:<br>  * Overloaded operators can now be specified.<br>
  * Special comments can now inform the type error slicer about<br>    identifiers in the top-level environment with their<br>    types/signatures.  (This allows handling things like &quot;use&quot; and<br>    &quot;CM.autoload&quot; and working around the fact that we do not yet<br>
    support &quot;open&quot;.)<br>  * We provide a larger basis including more of the standard SML basis<br>    and some SML/NJ-specific declarations.<br>  * We fixed many cases where the Emacs interface failed silently.<br>
<br>Other less important changes/improvements are:<br>  * We improved the error slices for record clashes.<br>  * We improved the pretty printing of error slices.<br>  * We improved the highlighting of white spaces.<br>  * We improved our error slice minimisation algorithm.<br>
  * We improved the communication between our type error slicer and<br>    its Emacs interface.<br>  * We provide new error messages on status clashes (for example<br>    between an exception constructor and a datatype constructor).<br>
  * Our test case database is much bigger, so there are fewer problems<br>    in general.<br>  * And we solved many bugs.<br><br>Even more changes are documented in the ChangeLog file.<br><br>The aim of our type error slicer is to provide useful type error<br>
reports for pieces of code written in SML:<br>  * It identifies all of the program points that contribute to a type<br>    error, including the spot with the actual programming error that<br>    caused the type error.<br>
  * It highlights these program points in the original, unchanged<br>    source code.<br>  * It avoids showing internal details of the operation of the type<br>    inference machinery.<br><br>A new compiled package of our type error slicer can be found at this URL:<br>
<br>  <a href="http://www2.macs.hw.ac.uk/~rahli/cgi-bin/slicer/downloads.html">http://www2.macs.hw.ac.uk/~rahli/cgi-bin/slicer/downloads.html</a><br><br>Known limitations:<br>  * We have not yet built the software for other operating systems<br>
    than Linux.<br>  * The only currently supported user interface is via GNU Emacs (or<br>    our web demo).<br>  * Some features of the SML language are not parsed (the user will be<br>    notified if this is the case), and some type errors are not yet<br>
    discovered (the user will need to rely on their usual type checker<br>    in these cases).  Notable spots where the implementation is<br>    incomplete are functors (you can work around this by including<br>    signatures on functor applications), equality types, and fixity<br>
    declarations.<br>  * We don&#39;t yet handle overloaded constants (for example 1 is always<br>    of type int).<br>  * The details of the SML basis library are incomplete (fortunately<br>    the user can add any additional details they are using).<br>
  * The software does not currently scale well to very large programs<br>    (we are still improving this).  It is currently suitable for small<br>    programs and use in teaching.<br>  * We have some known issues with context dependencies on long<br>
    identifiers which yields wrong error reports.<br><br>Best wishes,<br><br>Vincent Rahli and Joe Wells<br>