anchor.diff:                                                  :name "anonymous"
                                                   :loaded t)))))
                           *default-timezone*)))
  -      (unless (typep second 'integer)
  -        ;; TODO extract usec
  -        )
         (unless second (setf second 0))
         (unless minute (setf minute 0))
         (unless hour (setf hour 0))
  
positive.code:                                  (time-offset (second parts) sign))))))))
                   (partial-time (start-end)
                     (with-parts-and-count ((car start-end) (cdr start-end) time-separator)
                       (passert (eql (list-length parts) 3))
                       (time-hour (first parts))
                       (time-minute (second parts))
                       (time-second (third parts))))
  
negative.code: 
  (defun parse-timestring (timestring &rest args)
    "Parse a timestring and return the corresponding LOCAL-TIME. See split-timestring for details. Unspecified fields in the timestring are initialized to their lowest possible value."
    (destructuring-bind (year month day hour minute second usec offset-hour offset-minute)
        (apply #'split-timestring timestring args)
      ;; TODO should we assert on month and leap rules here?
      (let ((timezone (if offset-hour
                          (progn
                            (unless offset-minute
                              (setf offset-minute 0))
  