Методы и функции не относятся к пакетам. Символы принадлежат пакетам.
(defpackage :common (:use :cl))
(in-package :common)
(defgeneric compare (a b))
(defmethod compare ((a number) (b number))
(cond ((< a b) -1) ((= a b) 0) (T 1)))
(defpackage :a (:use :cl))
(in-package :a)
(defclass foo (a b))
Если A является текущим пакетом, вам нужно написать common :: compare для доступа к неэкспортированному символу COMPARE пакета COMMON.
(defmethod common::compare ((x foo) (y foo)) ...)
Если COMPARE был экспортирован из пакета COMMON, вы можете написать:
(defmethod common:compare ((x foo) (y foo)) ...)
Если COMPARE был экспортирован из пакета COMMON, а пакет A «использовал бы» пакет COMMON, то вы могли бы написать:
(defmethod compare ((x foo) (y foo)) ...)