sig
  type 'a t =
      Same of ('a * 'a) array
    | Old of 'a array
    | New of 'a array
    | Replace of 'a array * 'a array
    | Unified of 'a array
end