let rec assocp p = function | [] -> raise Not_found | (key, data) :: l -> if p key then data else assocp p l