export enum DiffOperation { Added = "added", Removed = "removed", Updated = "updated", } export type AddChange = { op: DiffOperation.Added value: A } export type RemovedChange = { op: DiffOperation.Removed } export type UpdatedChange = { op: DiffOperation.Updated value: A } export type DiffChange = AddChange | UpdatedChange | RemovedChange