anchor.diff:  
   (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)
  +  (destructuring-bind (year month day hour minute second nsec offset-hour offset-minute)
         (apply #'split-timestring timestring args)
       ;; TODO should we assert on month and leap rules here?
       (let ((timezone (if offset-hour
  
positive.code:                                                 :name "anonymous"
                                                  :loaded t)))))
                          *default-timezone*)))
        (unless usec (setf usec 0))
        (unless second (setf second 0))
        (unless minute (setf minute 0))
        (unless hour (setf hour 0))
        (unless day (setf day 1))
        (unless month (setf month 3))
        (unless year (setf year 2000))
        (encode-local-time (* usec 1000) second minute hour day month year :timezone timezone))))
  
  (defun parse-datestring (string)
    (let* ((*default-timezone* +utc-zone+)
  
negative.code:                                       (allow-missing-date-part-p allow-missing-elements-p)
                                        (allow-missing-time-part-p allow-missing-elements-p)
                                        (allow-missing-timezone-part-p allow-missing-elements-p))
    "Based on http://www.ietf.org/rfc/rfc3339.txt including the function names used. Returns (values year month day hour minute second nsec offset-hour offset-minute). If the parsing fails, then either signals an error or returns nil based on FAIL-ON-ERROR."
    (declare (type character date-time-separator time-separator date-separator)
             (type (simple-array character) time-string)
             (optimize (speed 3)))
    (the list
      (let (year month day hour minute second nsec offset-hour offset-minute)
        (declare (type (or null fixnum) start end year month day hour minute second nsec offset-hour offset-minute))
        (macrolet ((passert (expression)
                     `(unless ,expression
                       (parse-error)))
  