anchor.diff:  
   (defgeneric show (object))
   
  -(eval-when-compile
  -  (defun show-unreadable (class-name &optional (more ""))
  -    (string-concat "#(" (symbol-name class-name) more ")")))
  -
  -(defmacro define-stupid-show (class-name)
  -  #`(defmethod show ((a ,class-name))
  -      ,(string-to-form (show-unreadable class-name))))
  -
   (defmethod show ((a object))
     #{ JSON.stringify(~a) #})
   
  
positive.code:         ,@(compound-map (lambda (slot)
                            #`(defslot ,slot ,class-name))
                          slots)
          (define-stupid-show ,class-name)
          (class ,class-name))))
  
  (defmacro defgeneric (name &rest args)
  
negative.code: ;; simple-error is defined in JS
  (set-superclass (class simple-error) (class error))
  (defmethod show ((s simple-error))
    (string-concat (simple-error-message s) (simple-error-arg s)))
  
  (defclass control-error (error))
  
  