Conditionally construct an applicability condition.
Event macros sometimes have applicability conditions that are present (i.e. that must be proved) only under certain conditions on the inputs. An example is the applicability conditions related to guards in APT transformations, which are present only if guards must be verified.
This function provides a convenient way for event macros
to generate either
An event macro may generate all its applicability conditions by appending calls of this function.
Note that this macro expands into a non-strict and form,
so that the name and formula arguments are not evaluated
if the condition evaluates to
Macro:
(defmacro make-evmac-appcond? (name formula &key (when 't)) (cons 'and (cons when (cons (cons 'list (cons (cons 'make-evmac-appcond (cons ':name (cons name (cons ':formula (cons formula 'nil))))) 'nil)) 'nil))))