Elisp повторяет коммоновские struct'ы, а в Common Lisp можно при определении struct'а зафорсить его имплементацию как список или массив. В этом случае, кстати, не определяется новый тип, хотя иногда название struct'а пишут в car, и по идее там можно было б определить простой адхочный compound тип, но вроде так не делается.
Мало того, судя по инфо, это всегда последовательности:
Since the underlying Emacs Lisp system provides no way to create new distinct types, this package implements structures as vectors (or lists upon request) with a special “tag” symbol to identify them.
Internally, a record object is much like a vector; its slots can be accessed using ‘aref’ and it can be copied using ‘copy-sequence’. However, the first slot is used to hold its type as returned by ‘type-of’. Also, in the current implementation records can have at most 4096 slots, whereas vectors can be much larger. Like arrays, records use zero-origin indexing: the first slot has index 0.