Build a list
Macro:
(defmacro list* (&rest args) (declare (xargs :guard (consp args))) (list*-macro args))
Function:
(defun list*-macro (lst) (declare (xargs :guard (and (true-listp lst) (consp lst)))) (if (endp (cdr lst)) (car lst) (cons 'cons (cons (car lst) (cons (list*-macro (cdr lst)) nil)))))