let filter h f = 
    Hashtbl.fold (fun key value l -> 
    if (f(key,value)) then (key,value)::l else l) h []