sig
  exception Empty
  module Make :
    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
end