anchor.diff:        (setf (gethash key hash) val))
       hash))
   
  -;; from-json is simple yason:encode...
  +(defun from-json (string)
  +  "Parse the JSON string STRING and return the resulting lisp object."
  +  (yason:parse string :json-arrays-as-vectors t))
  +
   (defun to-json (object)
  -  "Convert a lisp OBJECT to a string of JSON, using YASON:ENCODE."
  +  "Convert a lisp OBJECT to a string of JSON."
     (with-output-to-string (s)
       (yason:encode object s)))
   
  
positive.code: (in-package :postgres-json)
  
  ;;;; Symbol/JSON functions.
  ;;;; Here be dragons, symbol casing is non trivial.
  
  (defun symbol->json (symbol)
    "Return the downcased symbol name of SYMBOL."
    (string-downcase (symbol-name symbol)))
  
  (defun json->symbol (string)
    "Return a symbol in the current package with symbol name being the
  upcased version of STRING."
    (ensure-symbol (string-upcase string)))
  
  ;;;; JSON related small functions
  
  
negative.code:   (let ((s (yason:make-json-output-stream stream :indent indent)))
      (yason:encode object s)))
  
  ;;;; True utility functions and macros, waiting for a real home
  
  (defmacro first-value (form)
    `(nth-value 0 ,form))
  
  (defun sym (package-name &rest args)
    "Return symbol being the concatenation of upcasing ARGS.  See
  