Recognize a structured collection of quoted constants.
(atj-qconstants-p x) is a std::defaggregate of the following fields.
Source link:
As we collect quoted constants for the purposes described here, we store their values (without quotes) in a record where they are partitioned into: (i) integers; (ii) other (i.e. non-integer) rationals; (iii) other (i.e. non-rational) numbers; (iv) characters; (v) strings; (vi) symbols; (vii) cons pairs. The first six are duplicate-free lists of appropriate types. The seventh is an alist from the pairs to positive integer indices: the first collected pair gets index 1, the second one gets index 2, and so on; we organize this as an alist instead of a list so that the indices are explicit and so that we can more easily optimize this with a fast alist in the future. The index for the next cons pair is stored in this record. The use of the indices is explained in atj-gen-shallow-cons-field-name. The alist has unique keys, by construction.