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