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