(deftrans-defn-tyspec names bodies extra-args extra-args-names) → *
Function:
(defun deftrans-defn-tyspec (names bodies extra-args extra-args-names) (declare (xargs :guard (and (alistp names) (alistp bodies) (true-listp extra-args) (true-listp extra-args-names)))) (let ((__function__ 'deftrans-defn-tyspec)) (declare (ignorable __function__)) (deftrans-defn 'tyspec names bodies '((tyspec tyspecp)) extra-args (cons 'tyspec-case (cons 'tyspec (cons ':void (cons '(tyspec-fix tyspec) (cons ':char (cons '(tyspec-fix tyspec) (cons ':short (cons '(tyspec-fix tyspec) (cons ':int (cons '(tyspec-fix tyspec) (cons ':long (cons '(tyspec-fix tyspec) (cons ':float (cons '(tyspec-fix tyspec) (cons ':double (cons '(tyspec-fix tyspec) (cons ':signed (cons '(tyspec-fix tyspec) (cons ':unsigned (cons '(tyspec-fix tyspec) (cons ':bool (cons '(tyspec-fix tyspec) (cons ':complex (cons '(tyspec-fix tyspec) (cons ':atomic (cons (cons 'tyspec-atomic (cons (cons (cdr (assoc-eq 'tyname names)) (cons 'tyspec.type extra-args-names)) 'nil)) (cons ':struct (cons (cons 'tyspec-struct (cons (cons (cdr (assoc-eq 'strunispec names)) (cons 'tyspec.unwrap extra-args-names)) 'nil)) (cons ':union (cons (cons 'tyspec-union (cons (cons (cdr (assoc-eq 'strunispec names)) (cons 'tyspec.unwrap extra-args-names)) 'nil)) (cons ':enum (cons (cons 'tyspec-enum (cons (cons (cdr (assoc-eq 'enumspec names)) (cons 'tyspec.unwrap extra-args-names)) 'nil)) '(:tydef (tyspec-fix tyspec)))))))))))))))))))))))))))))))))) '(:returns (new-tyspec tyspecp) :measure (tyspec-count tyspec)))))