anchor.diff:    (:method ((for-metaclass singleton) (class-name symbol))
       (intern
        (concatenate 'simple-string (symbol-name class-name)
  -                  "!" (symbol-name (class-name for-metaclass))
  -                  #.(symbol-name (quote #:!prototype))))))
  +                  "!" (symbol-name (class-name for-metaclass))))))
   
   
   (defclass singleton* (singleton)
  
positive.code:              ;; NB: This implementation, in effect, prevents any usage
               ;; of forward-referenced classes in the SUPERCLASSES list
  
               (defclass ,%proto-name (,@user-metaclass prototype-class
                                                        ,@superclasses)
                 ;; NB: See also, the FIXME remark in the definition of
  
negative.code:   ;; T
  
    (typep *the-s* 'singleton**)
    ;; T ;; OK
  
  
    ;; and of course (per CLOS unadorned) ...
    (typep (make-instance *the-s*) 'singleton)
    ;; T
  
    (typep (make-instance *the-s*) 'singleton*)
    ;; T
  
    (typep (make-instance *the-s*) 'singleton**)
    ;; T
  
  
    ;; NOW THIS NEEDS DOCUMENTATION
  
  
  
    ;; although (FIXME?)  ...
    (subtypep (make-instance *the-s*) 'singleton)
    ;; T, T ;; per CLOS
  
    (subtypep (ensure-class (gensym "THE-S") :metaclass *the-s*) 'singleton*)
    ;; NIL, T
  
    (subtypep (make-instance *the-s*) 'singleton**) ;; FIXME
    ;; NIL, T
  
  
  
  
    ;; --
  
    (let ((s (find-class 'singleton**)))
      (defparameter *the-s-2*
        (make-instance s :name (gentemp "S2-")
                       ;; NB - make-instance with :prototype-class class
                       ;; .. ensuring prototype-class reuse here - trivial hack
                       :prototype-class (find-class 'prototype-class)
  