A well-known pattern in dependency and inclusion is when a class A inherits from class X and class B also inherits from class X, but class C inherits from both A and B and thus gets to see double of each of X’s elements. The problem is solved differently in different programming and modelling languages—in grammars, it causes an ambiguity.