Webel IT Australia promotes the amazing Mathematica tool and the powerful Wolfram Language and offers professional Mathematica services for computational computing and data analysis. Our Mathematica
tips, issue tracking, and wishlist is offered here most constructively to help improve the tool and language and support the Mathematica user community.
DISCLAIMER: Wolfram Research does not officially endorse analysis by Webel IT Australia.
Such ADTs are called ADT MemberInterfaces in the Webel recipe. They may participate in multiple inheritance ONLY because they DO NOT define (generate) any ADT-method UpValues. For an example visit:
IMPORTANT: Webel: The definer of an ADT MemberInterface is NEVER called by a client sub-class definer if that client sub-class is involved in multiple inheritance via another ADT-Class (that generates ADT-Method UpValues)!
It may be called by a client sub-class definer that only wishes to inherit the functionality of the universal base ADT
whilst "inheriting" an otherwise passive membership role, and otherwise defines all of its own ADT-method UpValues.
Note that an ADT-Class participating in multiple inheritance will get those base ADT
ADT-method UpValues (against its own injected signature) through the one (1) allowed concrete ADT
it extends.
You could if you really wish include ADT-method UpValues in an ADT MemberInterface if you really enjoy really, really hard to trace bugs. A better and more enjoyable approach (even if it is sometimes a bit tedious) is: