let remove t k =
    match Table.find t.table k with
    | None -> `No_such_key
    | Some elt ->
        Doubly_linked.remove t.queue elt;
        Table.remove t.table (Elt.value elt).key;
        `Ok