let push t ~key ~data =
    match Hashtbl.find t.tbl key with
    | Some _ -> `Key_already_present
    | None ->
        let el = Heap.push t.heap (key, data) in
        Hashtbl.replace t.tbl ~key ~data:el;
        `Ok