É possível definir um tipo recursivo no Common Lisp?

Um tipo recursivo é um tipo que tem uma base e um caso recursivo em si.

Eu queria que isso implementasse "listas digitadas", ou seja, listas cujos conses permitem apenas o mesmo tipo de elemento ou nulo.

Eu tentei a seguinte definição:

(deftype list-of (a) `(or null
                          (cons ,a (list-of ,a))))

No entanto, isso sinaliza um problema de esgotamento da pilha (pelo menos na SBCL) devido ao compilador tentar recorrer indefinidamente pela lista. É possível definir esse tipo de dados?

questionAnswers(2)

yourAnswerToTheQuestion