This sequencing primitive is only useful when programming with
state, something that very few users will probably want to do.
See state.

Er-progn is used much the way that progn is used in Common
Lisp, except that it expects each form within it to evaluate to an
``error triple'' of the form (mv erp val state). The first such
form, if any, that evaluates to such a triple where erp is not
nil yields the error triple returned by the er-progn. If
there is no such form, then the last form returns the value of the
er-progn form.

We intend to write more about this topic, especially if there are
requests to do so.