| Accelerators | 32 | bit | integer ID |
| Atom | 32 | bit | Atom ID |
| Boolean | 24 | bit | immediate data |
| Color | 24 | bit | immediate data (Red value) followed by 2 16 bit words for Green and Blue |
| Colormap | 32 | bit | Colormap XID |
| Compound Strings | 32 | bit | address |
| Cursor | 32 | bit | Cursor XID |
| Enumeration | 24 | bit | immediate integer |
| Font | 32 | bit | Font XID |
| Font List | 32 | bit | integer ID |
| Function | 24 | bit | immediate token |
| Int | 32 | bit | integer |
| List | 24 | bit | immediate data (length) followed by each element recorded in order |
| Pixmap | 32 | bit | Pixmap XID |
| Short | 24 | bit | immediate integer |
| (1) Strings | 24 | bit | immediate data (length of string
including '\0')
followed by string data padded to end on
a word boundary ...or... |
| (2) Strings | 24 | bit | immediate token (for common strings) |
| Translations | 32 | bit | integer ID |
| Widgets | 32 | bit | integer ID |
| Window | 32 | bit | Window XID |
For objects such as translations, widgets, accelerators, font lists, and compound strings, the 32 bit ID is just the address of the object in the C server process. They are represented in Lisp by structures which encapsulate their ID's and provide them with Lisp data types (other than simply INTEGER).