Speaking of which, why are you making false and nil count as symbols at all?
I suppose it gives them an external representation without coining a new syntax like #f.
-----