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