title: Changing hunchentoot's current package
body: <p>I've set up a hunchentoot project with quickproject per Xach's <a href="http://xach.livejournal.com/278047.html" rel="nofollow noreferrer">instructions.</a> In-package is run at the top of the file, and hunchentoot is started later in the file. The REPL is switched to my package also, but it is evident that hunchentoot is not running in my package. This causes some disparity between tests in the REPL and the browser. For example there is a function that looks up some stuff in an alist, but hunchentoot gets NILs from it because it is using symbols from another package.</p>
  
  <p>I am aware from the answers to <a href="https://stackoverflow.com/questions/5081399/common-lisp-why-is-cl-lnterning-symbols-to-the-wrong-package-when-reading-from">this related question</a> that I can wrap every piece of code that interns symbols in something like </p>
  
  <pre><code>(let ((*package* (find-package :package-name)))
    ...)
  </code></pre>
  
  <p>which will set the <code>*package*</code> var to the correct package for the duration of the enclosed code.</p>
  
  <p>Putting this in every function that needs it feels to me like a messy hack.</p>
  
  <p>Intuition says that I should be able to start hunchentoot like this:</p>
  
  <pre><code>(let ((*package* (find-package :package-name)))
    (hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 4242)))
  </code></pre>
  
  <p>So that it makes its whole run with <code>*package*</code> set to the value that I prefer, thereby ensuring that any interning done by a call from the webserver is done in my package. It doesn't work. Hunchentoot ends up interning things under cl-user, possibly due to using a macro like WITH-STANDARD-IO-SYNTAX as in the link above.</p>
  
  <p>Even if I can persuade hunchentoot to do what I want, is there a reason why my 'messy hack' is still the better thing to do?</p>