It is allowed to define CMO data types recursively. Thus, if one introduces a new CMO, then one has to modify existing implementations which may handle the new CMO. Note that the new CMO should be at least sent or received without error even if it cannot be used for computation.