Diff2.Make
Functor building an implementation of the diff structure given a sequence type.
type t = M.t
The type of input sequence.
type elem = M.elem
The type of the elements of result / input sequence.
lcs ~equal seq1 seq2
computes the LCS (longest common sequence) of seq1
and seq2
. Elements of seq1
and seq2
are compared with equal
. equal
defaults to Pervasives.(=)
.
Elements of lcs are `Common (pos1, pos2, e)
where e
is an element, pos1
is a position in seq1
, and pos2
is a position in seq2
.
diff ~equal seq1 seq2
computes the diff of seq1
and seq2
. Elements of seq1
and seq2
are compared with equal
.
Elements only in seq1
are represented as `Removed (pos, e)
where e
is an element, and pos
is a position in seq1
; those only in seq2
are represented as `Added (pos, e)
where e
is an element, and pos
is a position in seq2
; those common in seq1
and seq2
are represented as `Common (pos1, pos2, e)
where e
is an element, pos1
is a position in seq1
, and pos2
is a position in seq2
.