>>4
Use an Oracle
object-oriented backend, and store each character as a separate object with its own value and encoding.
These are again stored as Cons'es with a Car and a Cdr attribute, of course.
This might sound grossly inefficient to you, but a true LISP programmer won't care as long as the representation is mathematically correct, and computer memory is so cheap nowadays, and it's cheaper to buy more hardware than to hire competent programmers, and soon it'll be the
future and all efficiency problems will magically disappear anyway. Paul Graham agreed, don't bother him about it.