title: Loading Packages in a Progn in Common Lisp
body: <p>I am trying to make a simple form that will automate the loading of Slynk on an image.</p>
  
  <p>So far, I have this:</p>
  
  <pre><code>(progn 
      (load "/home/user/asdf.lisp")
      (format t "~% Loaded ASDF")
      (push "/home/user/.emacs.d/elpa/sly-20180708.712/slynk/" asdf:*central-registry*)
      (format t "~% Added SLYNK path to ASDF:*CENTRAL-REGISTRY*")
      (asdf:load-system :slynk)
      (format t "~% Loaded ASDF system")
      (slynk:create-server :port 4007  :dont-close t)
      (format t "~% Created SLYNK server on port 4007")
      (setf slynk:*use-dedicated-output-stream* nil)
      (format t "~% Set *USE-DEDICATED-OUTPUT-STREAM* to NIL"))
  </code></pre>
  
  <p>The issue is that whenever I try to evaluate this form at the REPL, I get the following error:</p>
  
  <pre><code>Error: "ASDF" is not a known package.
  
  Restart actions (select using :continue):
   0: Return NIL
   1: Return to Top Level (an "abort" restart).
   2: Abort entirely from this (lisp) process.
  [1] CL-USER(4): 
  </code></pre>
  
  <p>No prints yet appear prior to that point. That is, it seems to error on the first <code>push</code> line. My understanding is that it has not yet loaded the package and tries to refer to its symbol. </p>
  
  <p>How can I change the form to make it work? There are similar situations lower in the form.</p>
  
  <p>P.S. When each line is executed by itself in the given order, everything works perfectly.</p>