anchor.diff:  ;; FIXME: most of these are bad. QPX does not do much decoding,
   ;; so I'll not touch them for the time being.
   (defun deserialize-scalar (type buffer index)
  -  "Deserializes the next object of scalar type 'type'.
  -   Deserializes from the byte vector 'buffer' starting at 'index'.
  +  "Deserializes the next object of scalar type TYPE.
  +   Deserializes from the byte vector BUFFER starting at INDEX.
      Returns the value and the new index into the buffer.
      Watch out, this function turns off most type checking and all array bounds checking."
     (declare (type (simple-array (unsigned-byte 8) (*)) buffer)
  
positive.code:         (encode-int64 val buffer))))))
  
  (defun get-scalar-encoder-form (type val buffer)
    (case type
      (:uint32   `(encode-uint32 ,val ,buffer))
      (:uint64   `(encode-uint64 ,val ,buffer))
  
negative.code:     (:double   `(encode-double ,val ,buffer))))
  
  (defun get-scalar-encoder-lambda (type)
    "Given a type TYPE, return a function that takes a value of type TYPE
  and a buffer which encodes the value to the buffer."
    (ecase type
      (:uint32   (lambda (val b) (encode-uint32 val b)))
      (:uint64   (lambda (val b) (encode-uint64 val b)))
  