let enqueue t key value =
if Table.mem t.table key then
`Key_already_present
else begin
let elt =
Doubly_linked.insert_last t.queue
{ Key_value.key = key; value = value; }
in
Table.add t.table ~key ~data:elt;
`Ok
end