anchor.diff:                                    (let ((arm-val (car arm)))
                                       (eq arm-val 't)))
                                   arms)
  -                 `((t (error "Unexpected union tag ~A" tag)))))))
  -       (defun ,(generate-encoder-name name) (blk union)
  +		       `((t (error 'xdr-error
  +				   :format-string "Unexpected union tag ~A"
  +				   :args (list tag))))))))
  +
  +       (defxencoder ,name (blk union)
            (let ((tag (xunion-tag union))
                  (val (xunion-val union)))
              (cond 
  
positive.code:     ret))
  
  (defun encode-array (blk item-encoder array &optional count)
    (declare (type xdr-block blk))
    (when count
      (unless (= count (length array))
        (error 'xdr-error
  
negative.code:   (incf (xdr-block-offset blk) 4))
  
  (defun encode-int64 (blk int64)
    (declare (type xdr-block blk)
  	   (type integer int64))
    (space-or-lose blk 8)
    (setf (nibbles:sb64ref/be (xdr-block-buffer blk)
                              (xdr-block-offset blk))
  