I have been reading through the C source to try and learn it and understand it better. I saw in Changeling.13 an entry From Paul Eggert on 2015-01-05 with “Use 0 for Qnil” As a fix for Bug#15880. How does this work in practice? It looks like symbols are just pointers, but 0 would not be a valid pointer. I don’t see any special code for handling the null case.