Related articles |
---|
type inference of recursive types jfklein@students.uiuc.edu (Joel F. Klein) (1999-12-01) |
Re: type inference of recursive types okrslar@informatik.uni-muenchen.de (Martin Okrslar) (1999-12-04) |
From: | "Joel F. Klein" <jfklein@students.uiuc.edu> |
Newsgroups: | comp.compilers |
Date: | 1 Dec 1999 23:40:28 -0500 |
Organization: | University of Illinois at Urbana-Champaign |
Keywords: | ML, types, analysis |
I'm trying to add support for recursive types to a compiler whose language
is based on typed lambda calculus, sort of akin to ML. Does anyone have
pointers to literature on implementing type inference for recursive types?
An example of such a recursive type is as follows:
type A = {car:int, cdr=var ref A}
("var ref A" means a variable of an A-typed Java-style reference in this
language)
but this would have to be distinguished from the cdr field of this type:
type B = {car:int, cdr=A}
that is, given f : A -> T and M : B, both the following lines would be
rejected:
f M
f M.cdr
The ML approach to type inference with recursive types seems to be
through the use of constructors that disambiguate the type of recursive
terms. Being accustomed only to ML, I'm unfamiliar with the alternatives.
--Joel Klein
Return to the
comp.compilers page.
Search the
comp.compilers archives again.