let find h key hkey =
match h.data.(hkey mod (Array.length h.data)) with
Empty -> raise Not_found
| Cons(d1, rest1) ->
if H.equal key d1.node then d1 else
match rest1 with
Empty -> raise Not_found
| Cons(d2, rest2) ->
if H.equal key d2.node then d2 else
match rest2 with
Empty -> raise Not_found
| Cons(d3, rest3) ->
if H.equal key d3.node then d3 else begin
let rec find = function
Empty ->
raise Not_found
| Cons(d, rest) ->
if H.equal key d.node then d else find rest
in find rest3
end