`functor (D : sig type left type right type diff type state end) ->
sig
type diff = (D.left, D.right, D.diff) Diffing_with_keys.mismatch
type left = D.left Diffing_with_keys.with_pos
type right = D.right Diffing_with_keys.with_pos
type composite_change =
(D.left, D.right, D.diff) Diffing_with_keys.change
type patch = Diffing_with_keys.Define.composite_change list
type change =
(Diffing_with_keys.Define.left, Diffing_with_keys.Define.right,
unit, Diffing_with_keys.Define.diff)
Diffing.change
module type Parameters =
sig
val weight : Diffing_with_keys.Define.change -> int
val test :
D.state ->
Diffing_with_keys.Define.left ->
Diffing_with_keys.Define.right ->
(unit, Diffing_with_keys.Define.diff) Stdlib.result
val update : Diffing_with_keys.Define.change -> D.state -> D.state
val key_left : D.left -> string
val key_right : D.right -> string
end
module Simple :
Parameters ->
sig
val diff :
D.state ->
D.left list -> D.right list -> Diffing_with_keys.Define.patch
end
end`