subtype inference system available
Recently I, Ed Wimmers and TK Lakshman have been investigating and
implementing type inference systems based on solving systems of type
inclusion constraints. Enough people have asked for the
implementation that we decided to clean up what we've done and
distribute it publicly. The result is available via anonymous ftp
from s2k-ftp.cs.berkeley.edu in the file
pub/personal/aiken/Illyria.tar.Z (about 100K bytes in size). A number
of published papers describing the ideas behind the system are also
available via ftp from the same directory.
Illyria is a small functional language designed to illustrate a
constraint-based subtype inference system. Illyria includes the
lambda calculus, polymorphic let, constructors, case expressions, and
record operations. The type language is rich, with union,
intersection, complement, conditional, recursive, and universally
quantified types. The system comes with the type inclusion constraint
solver, type inference for Illyria, and examples.
The type inference system is written in Common Lisp and should
work with any Common Lisp implementation. We hope that others will
find this software useful in their own research and teaching.
Questions and comments are always welcome.