Definition keyAssignmentsCompatCompareFull
  (ka kb : list keyAssignment)
: list compatVersionChangeRecord :=
  let f              := (fun k ks => keyAssignmentForId (kaId k) ks) in
  let removed        := keyAssignmentsRemoved ka kb in
  let added          := keyAssignmentsAdded ka kb in
  let changed        := intersectionPairs f ka kb in
  let removedChanges := keyAssignmentsCompatCompareRemoved removed in
  let addedChanges   := keyAssignmentsCompatCompareAdded added kb in
  let changedChanges := keyAssignmentsCompatCompareChanged changed in
    removedChanges ++ addedChanges ++ changedChanges.
