anchor.diff:  (defun encode-object-elements (&rest elements)
     "Encode plist ELEMENTS as object elements."
     (loop for (key value) on elements by #'cddr
  -       do (encode-object-element key value)))
  +     do (encode-object-element key value)))
   
   (defmacro with-object-element ((key) &body body)
     "Open a new encoding context to encode a JSON object element.  KEY
  
positive.code:   (princ object stream))
  
  (defmethod encode ((object hash-table) &optional (stream *standard-output*))
    (with-standard-output-to (stream)
      (write-char #\{)
      (let (printed)
        (maphash (lambda (key value)
                   (if printed
                       (write-char #\,)
                       (setf printed t))
                   (encode key stream)
                   (write-char #\:)
                   (encode value stream))
                 object))
      (write-char #\}))
    object)
  
  (defmethod encode ((object vector) &optional (stream *standard-output*))
    (with-standard-output-to (stream)
      (write-char #\[)
      (let (printed)
        (loop
           for value across object
           do
           (when printed
             (write-char #\,))
           (setf printed t)
           (encode value stream)))
      (write-char #\]))
    object)
  
  (defmethod encode ((object list) &optional (stream *standard-output*))
    (with-standard-output-to (stream)
      (write-char #\[)
      (let (printed)
        (dolist (value object)
          (if printed
              (write-char #\,)
              (setf printed t))
          (encode value stream)))
      (write-char #\]))
    object)
  
  (defmethod encode ((object (eql 'true)) &optional (stream *standard-output*))
  
negative.code: (in-package :yason)
  
  (defvar *json-output*)
  
  (defgeneric encode (object &optional stream)
  
  