Basic constructor macro for senv structures.
(make-senv [:identifiers <identifiers>])
This is the usual way to construct senv structures. It simply conses together a structure with the specified fields.
This macro generates a new senv structure from scratch. See also change-senv, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-senv (&rest args) (std::make-aggregate 'senv args '((:identifiers)) 'make-senv nil))
Function:
(defun senv (identifiers) (declare (xargs :guard (ident-senvp identifiers))) (declare (xargs :guard t)) (let ((__function__ 'senv)) (declare (ignorable __function__)) (b* ((identifiers (mbe :logic (ident-senv-fix identifiers) :exec identifiers))) (cons :senv (list (cons 'identifiers identifiers))))))