package - a package designator. The default is the current package.
symbol - a symbol.
status - one of :inherited, :external, :internal, or nil.
The first value returned by intern, symbol, is the symbol that was found or created. The meaning of the secondary value, status, is as follows:
The symbol was found and is present in package as an internal symbol.
The symbol was found and is present as an external symbol.
The symbol was found and is inherited via use-package (which implies that the symbol is internal).
No pre-existing symbol was found, so one was created.
It is implementation-dependent whether the string that becomes the new symbol's name is the given string or a copy of it. Once a string has been given as the string argument to intern in this situation where a new symbol is created, the consequences are undefined if a subsequent attempt is made to alter that string.
(in-package "COMMON-LISP-USER") #<PACKAGE "COMMON-LISP-USER"> (intern "Never-Before") |Never-Before|, NIL (intern "Never-Before") |Never-Before|, :INTERNAL (intern "NEVER-BEFORE" "KEYWORD") :NEVER-BEFORE, NIL (intern "NEVER-BEFORE" "KEYWORD") :NEVER-BEFORE, :EXTERNAL