Generalised Mixin-based Inheritance to Support Multiple Inheritance

The semantics of multiple inheritance is still very much a subject of debate. Before a clearer view on the issue is obtained, multiple inheritance will not enjoy wide-spread use. As stated by Alan Snyder in [Shana it is not clear how to design one that supports new examples". We argue that it is possible to construct a simple, comprehensible, and general multiple inheritance mechanism. This is achieved by fragmenting the functionality of multiple inheritance. For this purpose a generalised form of mixin-based inheritance is introduced. We show that these generalised mixins are exactly the right building blocks, and provide exactly the right balance between exposure and encapsulation of inheritance to express multiple inheritance hierarchies.