Great discussion of the perils of self-modifying elisp code: https://emacs.stackexchange.com/questions/20535/why-the-constant-in-let-designed-in-this-way