0:13:54pjbjfb4: but it is correct that the X11 protocol is specified leaving the upper 3 bits in its handles set to 0, to make it simple for lisp and other tagged languages to use it. https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#Common_Types
0:15:14pjbjfb4: note that usually tags in fixnums are stored in the lower bits instead, since it makes it more easily to manipulate on a normal 32-bit processor (additions and subtractions can be performed without change, multiplications and division by prefixing or suffixing a shift operation on one of the arguments).