This page describes the Typedscm dialect of Scheme. This dialect extends the extensions to Scheme described in the book Essentials of Programming Languages (second edition) by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes (MIT Press, 2001).


Typedscm aims to help students studying programming languages using the Essentials of Programming Languages (second edition).

In essence the language is an extended dialect of Scheme that allows one to declare types. The project provides software, written in Typedscm, for checking type declarations as well as doing type inference.

Technically, the type system is a Hindley-Milner type system with a very primitive notion of subtyping, and ordered intersection types. It is described more fully in the documents and papers listed below.

Typedscm is open source software, and comes without warranty of any kind. Forr details, see the file LesserGPL.txt in the release.

Downloading the Software

The software can be downloaded as a zip file. When unzipping it for use with DrScheme, it sould be unzipped into the op-level DrScheme installation directory (PLT), so that you have a directory named PLT/collects/typedscm when finished. See the README.txt file in the zip file for detailed instructions.

The software works in both the current version of Chez Scheme and in version 372 of DrScheme.

Documents and Papers


The main document describing the type system is the following.


The following papers are related to the project. They are listed in reverse chronological order.


The work was supported in part by the US NSF by the US NSF under grants CCR-9803843, CCR-0097907, and CCR-0113181.

Much of the work was done by a series of graduate students under the direction of Gary T. Leavens in the Department of Computer Science at Iowa State University. These students included, first Steven Jenkins, whose M.S. thesis was on an initial version of the type checker, and then Curtis Clifton Curtis Clifton, and most recently Brian Dorn. Brian's M.S. thesis is embodied in the latest version of the language and software.

Several other undergraduates, including David Faden, have sunk their teeth into earlier versions of the type checker.