anchor.diff:  ENCODE generic function, so it must be of a type for which an ENCODE
   method is defined."
     (next-aggregate-element)
  +  (write-indentation *json-output*)
     (encode object (output-stream *json-output*)))
   
   (defun encode-array-elements (&rest objects)
  
positive.code:   (write-string "null" stream)
    object)
  
  (defclass json-output-stream ()
    ((output-stream :reader output-stream
                    :initarg :output-stream)
     (stack :accessor stack
            :initform nil))
    (:documentation "Objects of this class capture the state of a JSON stream encoder."))
  
  (defun next-aggregate-element ()
    (if (car (stack *json-output*))
        (write-char (car (stack *json-output*)) (output-stream *json-output*))
        (setf (car (stack *json-output*)) #\,)))
  
  (defmacro with-output ((stream) &body body)
    "Set up a JSON streaming encoder context on STREAM, then evaluate BODY."
    `(let ((*json-output* (make-instance 'json-output-stream :output-stream ,stream)))
       ,@body))
  
  (defmacro with-output-to-string* (() &body body)
  
negative.code:   object structures."
    `(progn
       (next-aggregate-element)
       (write-indentation *json-output*)
       (encode ,key (output-stream *json-output*))
       (setf (car (stack *json-output*)) #\:)
       (unwind-protect
  