Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!spool.mu.edu!news.cs.indiana.edu!chaynes@sunfish.cs.indiana.edu From: chaynes@sunfish.cs.indiana.edu (Chris Haynes) Newsgroups: comp.lang.scheme Subject: Re: ML-like type-checker for Scheme subset? Message-ID: <1991May13.162700.3072@news.cs.indiana.edu> Date: 13 May 91 21:26:34 GMT References: <5710@goanna.cs.rmit.oz.au> Organization: Computer Science, Indiana University, Bloomington. Lines: 23 It occurred to me that static type checking could be introduced _after_ the other concepts have been presented, and that an ML-style type checker would suit Scheme rather well. There are a handful of functions like memq which would require union types, but well-typed replacements are easy to define. Has anyone already done this? I _could_ write the code myself, but it would be a pity to re-invent the wheel. With the help of a student, Hsianlin Dzeng, I have done this. The resulting typed dialect of Scheme is called Infer. It supports most features of the ML type system, less modules, plus a few additional features. I'm pleased with the result, and it has already proved useful at Indiana University in denotational semantics and types courses. It may someday be used in introductory courses as well, but not until it's been developed further and tutorial material has been written. Currently the implementation (about 40 pages of Infer code) still has a lot of rough edges and I've got fair sized list of features I'd like to add. My hope is to contribute a version to the Scheme yellow pages for general use next spring. Chris Haynes