Типы объектов Lisp организованы в иерархию, что означает, что типы могут наследоваться от других типов. Объекты типа B (который наследуется от типа A) наследуют все характеристики типа A. Это также означает, что каждый объект типа B является одновременно объектом типа A, от которого он наследуется.
Каждый тип наследуется от типа t.
Новые типы могут быть определены пользователем с помощью defclass или cl-defstruct.
Иерархия типов Lisp для примитивных типов может быть представлена следующим образом:
Например, тип list наследуется от (является особым видом) типа sequence, который в свою очередь наследуется от t.