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