Eh, the diamond problem and transitive issues don't exist because what is being reduced to is simply a set and membership. if expansions / aliases / synonyms / multi-membership produce overlaps, who cares, it's a set of hashs. The overwrites only represent wasted computation.
Really this is a simpler version of multiple inheritance. You don't have the issue of conflicting method signatures and implementations, only names.
The only danger is names meaning different things. You need your tags to be relatively unique to the meaning.
Really this is a simpler version of multiple inheritance. You don't have the issue of conflicting method signatures and implementations, only names.
The only danger is names meaning different things. You need your tags to be relatively unique to the meaning.