I don't understand the problem. NULL? is essential, and as far as I know it is the only appropriate way to detect an empty list. How NULL? is implemented (in terms of EQ?, etc) is irrelevant. As far as I'm concerned there are multiple list terminators all of which are NULL?