A class B is behaviorally compatible with class A with respect to a generic projection function p if for all messages m which a}i activate a method attached to B (p (m args)) = (apply 'm (mapcar p (list args))) mapcar applies the projection }ifunction to all arguments of m and returns the list of projections.}i p is the identity for most classes Example: LabeledEdge = *inherit* Edge