anchor.diff:  
   ;;; DEFOBJECT
   ;;; More convenient syntax for creating new objects
  -(defparameter *convenient!* (defobject (*obj*)
  -                                ((var "value")
  -                                 other-var) ; this is initialized to NIL
  -                              (:nickname '*convenient!*)))
  +(defparameter *convenient!*
  +  (defobject *obj*
  +      ((var "value")
  +       other-var)                       ; this is initialized to NIL
  +    :nickname '*convenient!*))
   
   ;;; DEFPROTO
   ;;; Abstracting the "class" pattern in object-oriented programming.
  -(defproto =prototype= (*super-obj*)
  +(defproto =prototype= *super-obj*
     ((proto-property "Excellent!")))
   
   (describe =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: ;; 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*))
  
  (eq =obj= *obj*)
  
  (describe =obj=)
  ;; 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.
  