restructuring Diff -> ChangeSet