> However, I could see this being done: have nil be escapable, so that |nil| is the symbol you can rebind, while nil is the literal empty list. ...And then are they eq?
I looked into this and think it's kind of elegant now. 'nil is unescapable like non-special character symbols in general are :
arc> (is 'nil '\n\i\l '|nil|) ; like your 'ach example
arc> (= |()| "escaped empty set")
"escaped empty set"
arc> (is () |()|)
arc> (= |()| nil)
arc> (is nil () |()| \(\))