Email list hosting service & mailing list manager

Why Single Inheritance Restriction? Ken Dickey (13 Sep 2005 20:27 UTC)
Re: Why Single Inheritance Restriction? Richard Kelsey (18 Sep 2005 14:08 UTC)
Re: Why Single Inheritance Restriction? Michael Sperber (20 Sep 2005 10:21 UTC)
Re: Why Single Inheritance Restriction? Richard Kelsey (20 Sep 2005 14:29 UTC)
Re: Why Single Inheritance Restriction? Michael Sperber (20 Sep 2005 15:15 UTC)
Re: Why Single Inheritance Restriction? Richard Kelsey (20 Sep 2005 15:27 UTC)
Re: Why Single Inheritance Restriction? Michael Sperber (20 Sep 2005 15:53 UTC)
Re: Why Single Inheritance Restriction? Andre van Tonder (20 Sep 2005 16:24 UTC)

Why Single Inheritance Restriction? Ken Dickey 13 Sep 2005 16:32 UTC

I would appreciate either the removal of the single inheritance restriction
[e.g. by allowing multiple PARENT clauses] or the addition of a rational of
why such a restriction is warrented.

My concern is that multiple inheritance has been found quite useful, while
simulating multiple inheritance using single inheritance is typically tedious
and error prone.

An example is an MI object system which uses records as instances (rooted at a
common ancestor w predicate instance?).  I might desire a collection which is
Keyed (fields: index-type, key=?, element-type), Thread-Safe (field: mutex),
and Sorted (field: compare<?).   Such a record object would answer #t to each
parent predicate:

(and (instance? obj) (keyed? obj) (thread-safe? obj) (sorted? obj)) => #t

Supporting MI would allow innovation in the dispatching and surface syntax of
OO systems while allowing more portable instance representations.  Precluding
MI leads to yet more "tagged vector" implementations and associated broken
printers.

$0.02,
-KenD

[Note: Fast, constant-time subtype testing:
http://people.csail.mit.edu/people/jrb/pve/pve.htm]