progn! is a function alias for block!, defined in
oo-base-macros-progn.el.

Signature
(progn! &rest BODY)

Documentation
Same as cl-block but modify BODY depending on particular forms.

The following describes possible modifications.

- (alet! VALUE)
- (aset! VALUE)
- (aset>! VALUE)
- (aset>>! VALUE)
Let bind the symbol it to VALUE.

- (set! SYM _ [:init EXPR])
Let bind SYM to nil.  If :init VAL is specified, let BIND SYM to EXPR.

- (maxing! SYM _ [:init EXPR])
Let bind SYM to least-positive-fixnum.

- (minning! SYM _ [:init EXPR])
Let bind SYM to most-positive-fixnum.

- (counting! SYM _ [:init EXPR])
Let bind SYM to 0.

- (INGMAC SYM VAL [:init EXPR])
INGMAC is a macro ending in "ing!" such as appending!, pushing!,
collecting!, etc.

- (gensym! SYM)
Let bind SYM to nil.

- (wrap! . WRAPPERS)
Surround block body with WRAPPERS. WRAPPERS is as in oo-wrap-forms.

- (with! . WRAPPERS)
Same as wrap!.

- (exclude! . VARS)
Do not let bind any vars in VARS.

- (without! . VARS)
Same as exclude!.

- (stub! NAME ARGS . BODY)
Wrap subsequent forms with (cl-flet ((NAME ARGS . BODY))).

- (nflet! NAME ARGS . BODY)
Wrap subsequent forms with (lef! ((NAME ARGS))).

- (LOOP ...)
Wrap the loop with (catch \=break!) and its body.
with (catch \=continue!)'. LOOP can be for!,
dolist, dolist! or while.

Like cl-block cl-return and cl-return-from work in BODY.

References
References in oo-base-macros-progn.el:
(defmacro lambda! ...) 1 reference

Find all references Functions used by progn!

Debugging
Enable edebug Enable tracing
Disassemble Forget

Aliases
block!

Alias Source Code
;; Defined in ~/.config/emacs/lisp/oo-base-macros-progn.el
;;;;; main macro
(defalias 'progn! 'block!)