anchor.diff:  ;; For those objects, DEFPROTO is a good option, since it lets you keep re-evaluating a single
   ;; form to alter it. You do not have to start an object off as a prototype, either:
   (defvar =obj= *obj*)
  -(defproto =obj= (*super-obj* *mixin*)
  -  ())
  +(defproto =obj= (*super-obj* *mixin*))
   
   (eq =obj= *obj*)
   
   (describe =obj=)
  -;; The variable that DEFPROTO binds/uses is a regular dynamic variable. 
  +;; The variable that DEFPROTO binds/uses is a regular dynamic variable.
   ;; It does not need to actually be wrapped by =foo=, but it is a stylistic marker to note
  -;; that the object is specifically meant to be used as a prototype.+;; that the object is specifically meant to be used as a prototype.
  
positive.code: (defparameter *obj* (object :nickname '*obj*)
    "Create an empty object. This object only has =standard-object= as its parent.")
  
  (defparameter *child* (object :parents *obj* :nickname '*child*)
    "This creates a new object which delegates to *obj*.")
  
  (defparameter *clone* (clone *obj*)
  
negative.code: ;;   =standard-object=
  ;;        /      \
  ;; *super-obj*  *mixin*
  ;;        \     /
  ;;         *obj*
  ;;           |
  ;;        *child*
  