Re: viewpoints and multiple inheritance.
> FORALL x P(x) -> Q(x)
>
> Inheritance just "happens" in a logical framework as a result of
> carrying through the natural consequences of this implication.
>
> A seaplane is NOT NOT NOT a subclass of AIRPLANE, UNCONTROLLED-BOAT
> and CONTROLLED-BOAT!!! This is just wrong. This is, in fact,
> precisely Nicola's point. Multiple inheritance is TOO OFTEN used to
> "bundle together" properties that a class of objects may "sometimes"
> exhibit. It is because of this almost universal lack of discipline
> that we should consider not having multiple inheritance.
Chris,
You and Nicola indicated an example to the contrary a while back:
(x):Equiangular(x) -> Polygon(x)
(x):Equilateral(x) -> Polygon(x)
(x):RegularPolygon(x) -> Equiangular(x) and Equilateral(x)
All these are "necessary" definitions, assuming the conventional
definitions of these terms. This ought to be an example of the
legitimate use of "multiple inheritance".
My point is if you can think of one principled example, you can
probably come up with others. It would be unfortunate if we were
to "throw out the baby with the bathwater" by failing to allow
this. All we need to do is to apply a framework, such as the one
you and Nicola have developed to weed out the silly cases (the C++
example comes to mind)
...bill