anchor.diff:      (if jdoc (funcall from-json jdoc) nil)))
   
   (defun fetch-all (model &key (from-json *from-json*))
  -  "Return a list of all objects in MODEL, a symbol.
  -Each JSON string is parse by the the function of one argument
  -designated by FROM-JSON."
  +  "Return a list of all JSON documents in MODEL, a symbol, after
  +parsing by the the function of one argument designated by FROM-JSON."
     (log:debu4 "Fetch all objects from ~A" model)
     (ensure-model-query model 'fetch-all$)
     (ensure-transaction-level (fetch-all read-committed-ro)
       (mapcar from-json (fetch-all$ model))))
   
   (defun erase (model key)
  -  "Delete the object with primary key KEY, of type compatible with
  -Postgres type KEY-TYPE in the model's parameters, from MODEL, a
  -symbol.  Returns KEY on success, NIL if there was no such KEY found."
  +  "Delete the JSON document with primary key KEY from MODEL, a symbol.
  +Return KEY on success, NIL if there was no such KEY found."
     (log:debu3 "Attempt erasure of object with key ~A from ~A" key model)
     (ensure-model-query model 'insert-old$ 'erase$)
     (ensure-transaction-level (erase repeatable-read-rw)
  
positive.code:     (keys$ model)))
  
  (defun tally (model)
    "Returns the number of entries in MODEL, a symbol."
    (log:trace "Call tally on ~A" model)
    (ensure-model-query model 'tally$)
    (ensure-transaction-level (count read-committed-ro)
  
negative.code:     (nth-value 0 (erase$ model key))))
  
  (defun erase-all (model)
    "Delete all JSON documents in MODEL, a symbol.  In fact this is a
  recoverable operation in a sense as all deleted rows will still be in
  the <model>-old Postgres relation."
    (log:debu3 "Attempt erase all from ~A" model)
  