functor (Ord : OrderedType->
  sig
    type data = Ord.t
    type t
    val create : Heap.Heap.data -> Heap.Heap.t
    val add : Heap.Heap.t -> Heap.Heap.data -> unit
    val min : Heap.Heap.t -> Heap.Heap.data
    val remove_min : Heap.Heap.t -> Heap.Heap.data
    val iter : (Heap.Heap.data -> unit) -> Heap.Heap.t -> unit
    val is_empty : Heap.Heap.t -> bool
    val size : Heap.Heap.t -> int
  end