An example would be:
(defpackage :implementation-package-1
(:export ...))
(defpackage :implementation-package-2
(:export ...))
(defpackage :package-to-use
(:use)
(:extends :implementation-package-1 :implementation-package-2))
User code can now simply use the package-to-use package and it will get all the exports of all the implementation packages.
You can also create packages which extend other packages excepting a few symbols, so you can create, for instance, custom CL-like packages, such as subsets, or CL-with-a-few-things-done-differently. You can also `clone' packages—create another package which shares all (external and internal) symbols with an existing package.
This language extension was developed by Tim Bradshaw. It works with Allegro CL, LispWorks, CLISP, CMUCL and Symbolics Genera.
MIT-LICENSE