Infer: A Statically-typed Dialect of Scheme

Members of the Infer project

Availability

Support

Design and implementation of Infer began with the support of NSF Grants DCR-8521497 and CCR-8702117 and continues with the support of NSF Grant CDA-9312614 as part of the IU Scheme Educational-infrastructure Project.

General description

Infer combines many (though not all) of the best features of Scheme and ML. Compared with latently-typed languages, such as Scheme, statically-typed languages, such as ML and Infer, sacrifice some expressive power in exchange for the ability to catch many errors at compile time, the possibility of more efficient execution, and some system-verified program documentation.

By supporting all of the forms and primitives procedures of Scheme, with a Scheme-like syntax, it is hoped Infer will prove accessible to Scheme programmers. Efficient compilation of Infer into Scheme is possible, thereby providing compatibility with Scheme programming environments.

Since Infer supports many features of the ML type system, plus a number of others, Infer may also be an attractive alternative to other languages supporting ML-style polymorphism.

The present Infer implementation, written in Infer, is well suited as a test bed for experimentation with a wide range of modern type systems that are based on "core" ML.

chaynes@indiana.edu