functor (X : Set.OrderedType->   sig     type t     val empty : Leftistheap.Make.t     val is_empty : Leftistheap.Make.t -> bool     val insert : X.t -> Leftistheap.Make.t -> Leftistheap.Make.t     val min : Leftistheap.Make.t -> X.t     val extract_min : Leftistheap.Make.t -> X.t * Leftistheap.Make.t     val merge :       Leftistheap.Make.t -> Leftistheap.Make.t -> Leftistheap.Make.t     val fold : (X.t -> '-> 'a) -> Leftistheap.Make.t -> '-> 'a     val elements : Leftistheap.Make.t -> X.t list     val of_list : X.t list -> Leftistheap.Make.t   end