let conv f annot_sexp =
let sexp = get_sexp annot_sexp in
try `Result (f sexp)
with Of_sexp_error (exc, bad_sexp) as e ->
match find_sexp annot_sexp bad_sexp with
| None -> raise e
| Some bad_annot_sexp -> `Error (exc, bad_annot_sexp)