1 Dec 1999 23:40:28 -0500

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

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.