Dalton is a generic and efficient library for type inference with structural subtyping written in Objective Caml. It deals with constraints resolution, simplification and comparison. This library comes as a functor parametrized by a series of modules whose purpose is to describe the client's type system. Hence, we hope it will be a suitable type inference engine for a variety of applications.
The algorithms implemented in this library are described and proved in the research paper "Type inference with structural subtyping: A faithful formalization of an efficient constraint solver". This library is used in the Flow Caml system, our information flow inference engine for the Caml language.
Source distribution of version 0.02 is available for download. Compilation and installation under UNIX systems requires Objective Caml version 3.06 or up and GNU Make.
Read-only CVS access to the whole sources is available through the Caml anonymous CVS server.
The Dalton Library is distributed under the terms of the GNU Library General Public License (with a special exception on linking).
Several sources of information are available. For the use of the library as a plug-in component in the implementation of a subtyping-based analyser, see the documentation of the library interface. A formal presentation of the algorithms is given in a resarch paper. Lastly, the source code of the library is extensively commented.