¿Es posible definir un tipo recursivo en Common Lisp?

Un tipo recursivo es un tipo que tiene una base y un caso recursivo en sí mismo.

Quería que esto implementara "listas escritas", es decir, listas cuyas conss solo permiten el mismo tipo de elemento o nulo.

Intenté la siguiente definición:

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

Sin embargo, esto indica un problema de pila agotada (al menos en SBCL) debido a que el compilador intenta repetirse indefinidamente sobre la lista. ¿Es posible definir ese tipo de datos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta