anchor.diff:      (: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)))
  
positive.code:                 serialize-scalar))
  (defun serialize-scalar (val type tag buffer)
    "Serializes a Protobufs scalar value into the buffer at the given index.
     The value is given by 'val', the scalar type by 'type'.
     Modifies the buffer in place, and returns the new index into the buffer.
     Watch out, this function turns off most type checking and all array bounds checking."
    (declare (type (unsigned-byte 32) tag))
    (locally (declare #.$optimize-serialization)
      (i+
  
negative.code:         (encode-int64 val buffer))))))
  
  (defun get-scalar-encoder-form (type val buffer)
    "Returns a form that encodes a value VAL with type
   TYPE to buffer BUFFER."
    (case type
      (:uint32   `(encode-uint32 ,val ,buffer))
      (:uint64   `(encode-uint64 ,val ,buffer))
  