sig
  type atom
  type t
  val length : t -> int
  val set : t -> int -> atom -> t
  val get : t -> int -> atom
  val insert : t -> int -> atom -> t
  val delete : t -> int -> t
  type patch
  val diff : t -> t -> Mergeable_vector.Mergeable_vector.patch
  val apply : t -> Mergeable_vector.Mergeable_vector.patch -> t
  val merge : resolve:(atom -> atom -> atom) -> ancestor:t -> t -> t -> t
end