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