let backtrack_literal_info (state: state) : unit =
let invalid_keys =
LiteralTable.fold
(fun _ literal_info acc ->
if is_choice_point_invalid literal_info.li_choice_point then
literal_info.li_literal :: acc
else
acc
)
state.st_literal_info
[]
in
List.iter
(LiteralTable.remove state.st_literal_info)
invalid_keys