Mathematica: POLICY: Webel: ADT pseudo classes that define membership of ADT-classes in a domain package have ADT-signature MemberInterface[$$:None] and MUST NOT populate ADT-method UpValues in their definers.

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.
Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Policy level
Keywords
Click on the image to view it full size
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 a 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:

Relates to
Related notes
Related notes (backlinks)
Related snippets (extracts)
Visit also
Visit also (backlinks)