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