Multiple Inheritance via Intersection Types

The following paper is now available for anonymous FTP, on the host
ftp.dcs.ed.ac.uk [or] in the directory pub/bcp, in the
file fomeet.ps.  


        Adriana Compagnoni
        Benjamin Pierce


             Multiple Inheritance via Intersection Types

            Adriana Compagnoni             Benjamin Pierce
       Catholic University, Nijmegen       LFCS, Edinburgh

Combining intersection types with higher-order subtyping yields a
typed model of object-oriented programming with multiple inheritance.
Objects, message passing, subtyping, and inheritance appear as
programming idioms in a typed lambda-calculus, a modelling technique
that facilitates experimentation and helps in distinguishing between
essential aspects of the object-oriented style -- encapsulation and
subtype polymorphism, which are directly reflected in the low-level
type system -- and useful but inessential programming idioms such as

The target calculus, a natural generalization of system F-omega with
intersection types, is of independent interest.  We establish basic
structural properties and give a proof of type soundness using a
simple semantics based on partial equivalence relations.