đź“ťCommon Lisp: packages and symbols

;; define package
(defpackage :package.name
  (:use :common-lisp :package2)
  ;; export symbols
  (:export
   :symbol1
   :symbol2)
  ;; import symbols
  (:import-from :other.package.name :symbol3 :symbol4)
  ;; shadow a symbol (e.g., from :use above)
  ;;
  ;; This creates a new 'symbol5 and adds it to package-to-name table
  ;; of package.name and to shadowing list
  (:shadow :symbol5)
  ;; Shadowing import (makes symbol-name from other packages
  ;; inaccessible)
  (:shadowing-import-from :package-name :symbol-name))

Backlinks