functor (D : DIFF_ELEMENT->
  sig
    type e = D.t
    type t = D.t list
    val compare : t -> t -> int
    val pp_printer : Format.formatter -> t -> unit
    val pp_diff : Format.formatter -> t * t -> unit
    val assert_equal : ?msg:string -> t -> t -> unit
    val of_list : e list -> t
  end