|   | 
 ANSI Common Lisp    11 Packages    11.2 Dictionary of Packages
 
| 11.2.18  use-package | 
Function | 
  
 - Syntax:
 - 
use-package
packages-to-use &optional package
  
  t
 
  - Arguments and Values:
 - 
packages-to-use - a designator for 
			  a list of package designators.
  The keyword package may not be supplied.
package - a package designator.
  The default is the current package.
  The package cannot be the keyword package.
 
  - Description:
 - 
use-package causes package to inherit all the
external symbols of packages-to-use.
The inherited symbols become accessible as 
internal symbols of package.  
Packages-to-use are added to the use list of package
if they are not there already.  All external symbols in
packages-to-use become accessible in package
as internal symbols.
use-package does not cause any new symbols to be present
in package but only makes them accessible by inheritance.
 
use-package checks for
name conflicts between the newly imported symbols and those already
accessible in package.  
A name conflict in use-package 
between two external symbols inherited
by package from packages-to-use may be resolved in favor of
either symbol 
by importing one of them into package and making it a
shadowing symbol. 
 
  - Examples:
 - 
 (export (intern "LAND-FILL" (make-package 'trash)) 'trash)    T
 (find-symbol "LAND-FILL" (make-package 'temp))    NIL, NIL
 (package-use-list 'temp)   (#<PACKAGE "TEMP">)
 (use-package 'trash 'temp)    T
 (package-use-list 'temp)   (#<PACKAGE "TEMP"> #<PACKAGE "TRASH">)
 (find-symbol "LAND-FILL" 'temp)    TRASH:LAND-FILL, :INHERITED
 
  - Side Effects:
 - 
The use list of package may be modified.
  - See Also:
 - 
unuse-package,
package-use-list,
Section 11.1 Package Concepts
  - Notes:
 - 
It is permissible for a package P1 
to use a package P2
even if P2 already uses P1.
The using of packages is not transitive, 
so no problem results from the apparent circularity.
  - Allegro CL Implementation Details:
 - 
 None.
  
 |