module type Mergeable_vector =sig..end
include Mergeable_vector.Vector
type patch
val diff : t -> t -> patchdiff a b returns a patch p such that apply a p = b. The difference
is computed by Wagner-Fischer algorithm. O(length(a) * length(b)) time and
space.val apply : t -> patch -> tapply a p applies the compatibe patch p on a.
Raise Invalid_argument "incompatible patch"
if the patch cannot be applied.
val merge : resolve:(atom -> atom -> atom) -> ancestor:t -> t -> t -> tmerge r a l r performs a 3-way merge between two vectors l and r,
and their common ancestor a. Merge conflicts are handled by the
resolve function.