title: Export / unintern and symbol access
body: <p>In the following example, I'm getting an error:</p>
  <pre><code>These symbols are not accessible in the COMMON-LISP-USER package:
    (FOO::BAR)
  </code></pre>
  <p>yet,</p>
  <pre><code>LS-USER&gt; (describe 'foo::bar)
  FOO::BAR
    [symbol]
  ; No value
  </code></pre>
  <p>Here's what how I got there:</p>
  <pre><code>CL-USER&gt; (make-package &quot;FOO&quot; :use '())
  #&lt;PACKAGE &quot;FOO&quot;&gt;
  CL-USER&gt; (intern &quot;BAR&quot; *)
  FOO::BAR
  NIL
  CL-USER&gt; (export (find-symbol &quot;BAR&quot; (find-package &quot;FOO&quot;)))
  </code></pre>
  <p>Now I understand what the error means and what I'm curious about is: &quot;Is this behaviour correct <a href="http://clhs.lisp.se/Body/f_export.htm" rel="nofollow noreferrer">according to the spec</a>?&quot;. I'm using SBCL.</p>
  <p>I can see why it's not accessible via <code>foo:bar</code> (it's not exported). However since <code>export</code> is given both the symbol and the package, why can't it access this symbol and export it?  I'm seeing similar things with <code>unintern</code>.</p>
  <p>A close read says &quot;<strong>export</strong> makes one or more symbols that are accessible in <em>package</em> ...&quot;.  It doesnt' say it has to be accessible in the current package (<code>*package*</code>).</p>
  <p>It seems to me that export has all the information it needs to perform the export, but the only way this seems to work is with <code>(export 'foo::bar (find-package &quot;FOO&quot;))</code>.  Perhaps it's an underspecified area and this is just what SBCL has choosen to do?</p>