let create ?min_size cmp =
    let initial_tbl_size =
      match min_size with
      | None -> 50
      | Some s -> s
    in
    { heap = Heap.create ?min_size (fun (_, v1) (_, v2) -> cmp v1 v2);
      tbl = Table.create ~size:initial_tbl_size ();
    }