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