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