<a href="http://www.lispworks.com/documentation/HyperSpec/Body/f_uninte.htm">UNINTERN</a> is specified to unintern a symbol if it's present in the package. Symbol can be present either by being interned or imported, but not inherited. And unitern accepts a symbol, not a symbol designator, but SBCL treats it as a designator.
So,
(progn (defpackage :foo (:shadow :sym))
(unintern :sym :foo)
(find-symbol "SYM" :foo))
returns NIL, NIL.
Attached patch fixes this (with a test-case included).
<a href="http:// www.lispworks. com/documentati on/HyperSpec/ Body/f_ uninte. htm">UNINTERN</a> is specified to unintern a symbol if it's present in the package. Symbol can be present either by being interned or imported, but not inherited. And unitern accepts a symbol, not a symbol designator, but SBCL treats it as a designator.
So,
(progn (defpackage :foo (:shadow :sym))
(unintern :sym :foo)
(find-symbol "SYM" :foo))
returns NIL, NIL.
Attached patch fixes this (with a test-case included).