Abstract

Object Algebras are a simple solution to the Expression Problem for mainstream object-oriented languages. However, it is still cumbersome to model dependent object algebras or compose object algebras with existing languages. To work around these problems, meta-programming is often used at the cost of performance penalties and imprecise error messages. In this talk, I will present some preliminary results on designing a new language that has native support for object algebras. In the first half of the talk, I will illustrate how object algebras can be defined and composed in a concise way using this new language. In the second half of the talk, I will show how to elaborate the language into Fi+, a calculus that supports disjoint intersection types with a merge operator, parametric polymorphism and BCD-style distributive subtyping.