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