X-Git-Url: http://christophe.rhodes.io/gitweb/?p=specializable.git;a=blobdiff_plain;f=specializable.lisp;h=29ad9260ff1f2d78abc78879e0e50902013081dc;hp=6fabb2420607b828db73b9599e4724833f0e1b19;hb=0ffa1258a3f10cf28cbe1751ef92431aa54521c0;hpb=3439c63eaba282191fbef5fa78f8ce29573323ed diff --git a/specializable.lisp b/specializable.lisp index 6fabb24..29ad926 100644 --- a/specializable.lisp +++ b/specializable.lisp @@ -51,6 +51,12 @@ ;;; gf ;;; args)))) +;;; FIXME: this (and add/remove-direct-method) don't actually work +;;; together, because two distinct calls to make-extended-specializer +;;; return two distinct specializer objects. We need either to make +;;; the extended specializers be interned, or to have them be +;;; arbitrarily ephemeral but adjust specializer-direct-methods (and +;;; implement specializer-direct-generic-functions) accordingly. (defun make-extended-specializer (sname) (destructuring-bind (kind &rest args) sname (apply (or (get kind 'extended-specializer-parser)