;;; helper functions for WITH-ADDITIONAL-NICKNAMES and WITHOUT-GIVEN-NICKNAMES
(defun %with-additional-nickname (package-designator nickname body-fn)
+ (declare (type function body-fn))
(with-additional-nickname (package-designator nickname)
(funcall body-fn)))
(defun %without-given-nickname (package-designator nickname body-fn)
+ (declare (type function body-fn))
(without-given-nickname (package-designator nickname)
(funcall body-fn)))
(defun %multi-nickname-magic (nd-list single-nn-fn body-fn)
+ (declare (type function single-nn-fn))
(labels ((multi-nd (nd-list body-fn) ; multiple nickname descriptors
+ (declare (type function body-fn))
(if (null nd-list)
(funcall body-fn)
(single-nd (first nd-list)
(destructuring-bind (package-descriptor nickname-list) nd
(multi-nn package-descriptor nickname-list body-fn)))
(multi-nn (nn-list package-descriptor body-fn) ; multiple nicknames
+ (declare (type function body-fn))
(if (null nn-list)
(funcall body-fn)
(funcall single-nn-fn
(compile '%without-given-nickname)
(compile '%multi-nickname-magic)
-;;; Like WITH-ADDITIONAL-NICKNAME and WITHOUT-GIVEN-NICKNAMES, except
-;;; working on arbitrary lists of nickname descriptors instead of
-;;; single nickname/package pairs.
+;;; This is like WITH-ADDITIONAL-NICKNAME and WITHOUT-GIVEN-NICKNAMES,
+;;; except working on arbitrary lists of nickname descriptors instead
+;;; of single nickname/package pairs.
;;;
;;; A nickname descriptor is a list of the form
;;; PACKAGE-DESIGNATOR NICKNAME*