- | IDENT "fold"; kind = reduction_kind; t = tactic_term ->
- TacticAst.Fold (loc, kind, t)
+ | IDENT "fail" -> TacticAst.Fail loc
+ | IDENT "fold"; kind = reduction_kind; t = tactic_term;
+ p = OPT [ pattern_spec ] ->
+ let p = match p with None -> [], None | Some p -> p in
+ TacticAst.Fold (loc, kind, t, p)