anchor.diff:  ;;; --------------------------------------------------------------------
   
   ;;; This is an example of how to write a CLIM application with a
  -;;; "normal" GUI. McCLIM can do more than just command lines..
  +;;; "normal" GUI, where "normal" is a completely event driven app
  +;;; built using gadgets and not using the command-oriented framework.
   
   ;;; Running the method-browser:
   ;;;   (clim-demo::run-test 'clim-demo::method-browser)
  
positive.code: 
  (defun specializer-pretty-name (spec)
    "Pretty print the name of a method specializer"
    (cond ((or (typep spec 'class)
               #+CMU (typep spec 'pcl::class))
           (princ-to-string (class-name spec)))
          (t (princ-to-string spec))))
  
  (defun maybe-find-gf (name)
  
negative.code:     (loop for index from 0 below (length (first specializers))
           collect (remove-duplicates (mapcar (lambda (specs) (nth index specs))
                                              specializers)))))
  
  (defun classp (x)
    (or (typep x 'cl:class)
        #+CMU (typep x 'pcl::class)))
  
  (defun eql-specializer-p (x)
    #+SBCL (typep x 'sb-mop:eql-specializer)
    #+CMU  (typep x 'pcl:eql-specializer))
  
  (defun eql-specializer-object (x)
    #+SBCL (sb-mop:eql-specializer-object x)
    #+CMU  (pcl::eql-specializer-object x))
  
  (defun compute-applicable-methods-from-specializers (gf specializers)
    (clim-mop:compute-applicable-methods gf
       (mapcar (lambda (spec)
                 (cond ((eql-specializer-p spec)
                        (eql-specializer-object spec))
                       ((classp spec)
                        (clim-mop:class-prototype spec))
                       (t (error "Can't compute effective methods, specializer ~A is not understood." spec))))
               specializers)))
  
  ;; FIXME: Support EQL specializers.
  ;; This is hard to do ideally, and I'm not really trying.
  