method get (f:'a->'b) (x:'a) = try
begin
let y=(Hashtbl.find current x) in
(if trace then (prerr_endline ("Memo.call: value found for key "^(sok x))); y)
end
with Not_found ->
begin
if trace then prerr_endline ("Memo.call: using function for key "^(sok x));
let y = (f x) in
((Hashtbl.replace current x y); y)
end