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