- | Note s -> mk_note s :: a
- | Theorem (n, t, s) -> mk_note s :: mk_theorem n t :: a
- | Qed s -> (* mk_note s :: *) mk_qed :: a
- | Id s -> mk_note s :: cont sep (mk_id :: a)
- | Intros (c, ns, s) -> mk_note s :: cont sep (mk_intros c ns :: a)
- | Cut (n, t, s) -> mk_note s :: cont sep (mk_cut n t :: a)
- | LetIn (n, t, s) -> mk_note s :: cont sep (mk_letin n t :: a)
- | Rewrite (b, t, w, s) -> mk_note s :: cont sep (mk_rewrite b t w :: a)
- | Elim (t, xu, s) -> mk_note s :: cont sep (mk_elim t xu :: a)
- | Apply (t, s) -> mk_note s :: cont sep (mk_apply t :: a)
- | Whd (c, s) -> mk_note s :: cont sep (mk_whd c :: a)
- | Branch ([], s) -> a
- | Branch ([ps], s) -> render_steps sep a ps
- | Branch (pss, s) ->
- let a = mk_ob :: a in
- let body = mk_cb :: list_rev_map_concat (render_steps None) mk_vb a pss in
- mk_note s :: cont sep body
+ | Note s -> mk_notenote s a
+ | Theorem (n, t, s) -> mk_theorem n t :: mk_thnote s a
+ | Qed s -> mk_qed :: mk_tacnote s a
+ | Id s -> mk_id sep :: mk_tacnote s a
+ | Intros (c, ns, s) -> mk_intros c ns sep :: mk_tacnote s a
+ | Cut (n, t, s) -> mk_cut n t sep :: mk_tacnote s a
+ | LetIn (n, t, s) -> mk_letin n t sep :: mk_tacnote s a
+ | Rewrite (b, t, w, e, s) -> mk_rewrite b t w e sep :: mk_tacnote s a
+ | Elim (t, xu, e, s) -> mk_elim t xu e sep :: mk_tacnote s a
+ | Apply (t, s) -> mk_apply t sep :: mk_tacnote s a
+ | Change (t, _, w, e, s) -> mk_change t w e sep :: mk_tacnote s a
+ | Clear (ns, s) -> mk_clear ns sep :: mk_tacnote s a
+ | ClearBody (n, s) -> mk_clearbody n sep :: mk_tacnote s a
+ | Branch ([], s) -> a
+ | Branch ([ps], s) -> render_steps sep a ps
+ | Branch (ps :: pss, s) ->
+ let a = mk_ob :: mk_tacnote s a in
+ let a = List.fold_left (render_steps mk_vb) a (List.rev pss) in
+ mk_punctation sep :: render_steps mk_cb a ps