Status: IN
The GoF's distinction between type (interface) and class (implementation) — objects of different classes can share a type — combined with the principle that pattern participants are named roles rather than classes, jointly ground abstract coupling: patterns achieve flexibility precisely because their participants are defined by the roles they play (interfaces/types), not the classes that implement them, making concrete class identity irrelevant to pattern structure.
Type/class separation and roles-not-classes together explain why patterns achieve abstract coupling
Depends on (SL): gof-type-is-interface-class-is-implementation, pattern-participants-are-roles-not-classes