На уровне C объект lisp emacs - это объект размером со слово, который содержит биты тегов и биты значений.Биты тега определяют, как следует интерпретировать биты значения: как указатель (и на что) или как прямую константу, такую как целое число или символ.Это довольно распространенный метод реализации для языков высокого уровня.
(Простой) вектор - это массив таких объектов, поэтому в векторе целых чисел или символов нет косвенного обращения.Строки и битовые векторы обеспечивают более компактное представление за счет возможности хранить только символы или логические значения соответственно.
Детали представления (такие как количество битов тега, сколько целых чисел может идти, ии так далее) зависит от версии Emacs и настроек времени компиляции.Исходный файл, в котором происходит магия: src/lisp.h
.