Infer: A Statically-typed Dialect of Scheme
Members of the Infer project
Availability
- An preliminary draft manual for Infer is available as Indiana
University Computer Science Department Technical Report 367. Revision
to reflect a number of design changes is in progress.
- An preliminary implementation, written in Infer, runs under Chez
Scheme. Revision to reflect design changes and remove bugs is in progress.
Alpha-release will be this summer.
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