anchor.diff:                      (values nsec sec day))
                      (t
                       (let ((old-utc-offset (or utc-offset
  -                                          (timestamp-subtimezone time timezone)))
  +                                              (timestamp-subtimezone time timezone)))
                             new-utc-offset)
                         (tagbody
                            top
  
positive.code:                 (push (second change) params)
                  (push operation params))
                 (t (error "Unexpected operation ~S" operation)))))
           finally
           (loop for (function part value) in functions
                do
                (funcall visitor `(,function ,timestamp ,part ,value ,@params)))))
  
    (defun %expand-adjust-timestamp (timestamp changes &key functional)
      (let* ((old (gensym "OLD"))
  
negative.code:       (and c (endp (cdr c)))))
  
    (defun %expand-adjust-timestamp-changes (timestamp changes visitor)
      (loop
        :for change in changes
        :with params = ()
        :with functions = ()
        :do
           (progn
             (assert (or
                      (%list-length= 3 change)
  