Я опять выхожу на связь, потому что ниасилил AMOP.
Вот допустим у меня есть
(defclass foo () ())
(defmethod initialize-instance ((object foo) &rest initargs)
(format t "foo instantiated~%")
(call-next-method) )
(let ((gf (ensure-generic-function 'initialize-instance)))
(add-method gf
(make-instance
(generic-function-method-class gf)
':specializers (list (find-class 'foo))
':lambda-list '(object &rest initargs)
... ) ) )
У defmethod какого-то интерфейса для этого нет. Я попробовал вручную вызвать add-method, но SBCL (который я запустил второй раз в жизни) ругается на какую-то фигню, которую я не понимаю (keyword parameter value is not a symbol, или типа того).