anchor.diff:                               ,%supers)
                    (setf ,%supers (nconc ,%supers (list ,%singleton)))))
   
  -             (let ((,%proto (ensure-class (quote ,%proto-name)
  -                                          :metaclass (quote ,%metaclass)
  -                                          :direct-superclasses ,%supers)))
  -               ;; NB: ^ This may not be sufficent as to be able to
  -               ;; locate the class during evaluation of the following
  -               ;;
  -               ;; NB ^ As it creates an instance of a class metaobject
  -               ;; via MAKE-INSTANCE (and not DEFCLASS) this _may not_
  -               ;; serve to register the prototype-class (resulting from
  -               ;; that evaluation) as a class completely "known" to the
  -               ;; implementation type system
  -               ;;
  -               ;; So, FIXME: Use interned class names for prototype
  -               ;; classes created via DEFSINGLETON*; use DEFCLASS to
  -               ;; define such prototype classes
  -               ;;
  -               ;; Subsq FIXME: Determine some way to include any
  -               ;; user-specified :METACLASS as a superclass of the
  -               ;; resulting defsingleton* prototype-class - along with
  -               ;; any user-specified superclasses for the resulting
  -               ;; SINGLETON metaobject
  -               (values
  -                (defclass ,name ,(cons %proto-name superclasses)
  -                  ,slots
  -                  (:metaclass ,%proto-name)
  -                  ,@%params)
  -                ;; NB: The %PROTO class gets too easily lost here,
  -                ;; beyond prototyping
  -                ,%proto
  -                ;; FIXME: Emit a signal or a style-warning for each
  -                ;; foward referened class. Note that these prevent the
  -                ;; resulting singleton class from being, as yet,
  -                ;; finalized.
  -                ,%fwd))))))))
  +             ;; NB: This macro, in effect, prevents any usage of forward
  +             ;; referenced classes in the SUPERCLASSES list
  +
  +             ;; AS SUCH, MACROLET might be useful within this
  +             ;; macroexpansion - to ensure that an appropriate direct
  +             ;; superclasses list can be computed, consistently,
  +             ;; for each of the ,%PROTO-NAME and ,%NAME classes
  +             ;;
  +             ;; Note that as this already requires that none of the
  +             ;; SUPERCLASSES will be a FORWARD-REFERENCED-CLASS,
  +             ;; it can therefore be determined - reliably - whether any
  +             ;; of a SINGLETON or PROTOTYPE-CLASS metaclass is denoted
  +             ;; in the SUPERCLASSES list for - respectively - the ,NAME
  +             ;; and ,%PROTO-NAME classes
  +
  +             (defclass ,%proto-name (,@%user-metaclass prototype-class
  +                                                       ,@superclasses)
  +               ()
  +               (:metaclass prototype-class))
  +
  +             (defclass ,name
  +                  ;; NOTES - SINGLETON AS DIRECT SUPERCLASS (A HACK)
  +                  ;; does not break, but does not result in an
  +                  ;; appropriate class precedence list (w/ PCL)
  +                  #+NIL (,@superclasses)
  +                  ;; breaks when defining subclasses, does not break at first
  +                  #+NIL (singleton ,@superclasses)
  +                  ;; does not break, and may result in an appropriate class
  +                  ;; precedence list in the class
  +                  ;;
  +                  ;; FIXME -  MIGHT BREAK under some superclasses having
  +                  ;; SINGLETON as a superclass (More test cases req'd)
  +                  (,@superclasses singleton)
  +                ,slots
  +                (:metaclass ,%proto-name)
  +                ,@%params)))))))
  +
   
   ;; FIXME: Test DEFSINGLETON* with forward-referenced direct superclasses
   
  
positive.code: ;; => T, T, T, T
  
  
  (class-slots (find-class 'singleton-1-1))q
  
  (class-direct-slots (find-class 'singleton-1-1))
  
  
negative.code:   (:metaclass singleton))
  
  
  #+NIL
  (defmacro getf* (place property &optional default)
    ;; FIXME - move definition to ltp-common
    (with-symbols (dflt obj)
  