¿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?