I've hit a snag with respect to self-evaluating objects, and the ad-hoc evaluation of
program labels is messed up because of it. I'm going to have to refactor.
Oddly enough, the strategy I hit upon appears to be the same one found
in Wisp, rather than Clojurescript.
This may actually be an internal detail; the version rendered for the user may actually
not care. I hope not; the performance could become hairy pretty quickly.
I spent far too much time debugging an issue with metacadr (see the
cons-list commits for details), but this now successfully recurses
and all of its code paths are exercised by the factorial/fibonacci
exercises. This is a Coffeescript implementation of the language
described at the end of chapter 1 of Lisp In Small Pieces.
Also, added a syntax-aware pretty printer. It's very primitive, but
it's good enough for some debugging.