simple_ast and simple_pat now report errors and return options instead of failing.