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