Abstract:
In a call-by-value language, representing objects as recursive records
requires using an unsafe fixpoint. We design, for a core language
including extensible records, a type system which rules out unsafe
recursion and still supports the reconstruction of a principal
type. We illustrate the expressive power of this language with respect
to object-oriented programming by introducing a sub-language for
``mixin-based'' programming.
[PostScript, .ps.gz]