This week I made a mistake that ultimately enlightened me about the nature of function objects in Emacs Lisp. There are three kinds of function objects, but they each behave very differently when evaluated as objects. But before we get to that, let’s talk about one of Emacs’ embarrassing, old missteps: eval-after-load. Taming an old dragon One of the long-standing issues with Emacs is that loading