anchor.diff:                                        (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 offset-hour offset-minute). If the parsing fails, then either signals an error or returns nil based on FAIL-ON-ERROR."
  +  "Based on http://www.ietf.org/rfc/rfc3339.txt including the function names used. Returns (values year month day hour minute second usec 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 offset-hour offset-minute)
  -      (declare (type (or null fixnum) start end year month day hour minute offset-hour offset-minute)
  -               (type (or null integer float) second))
  +    (let (year month day hour minute second usec offset-hour offset-minute)
  +      (declare (type (or null fixnum) start end year month day hour minute second usec offset-hour offset-minute))
         (macrolet ((passert (expression)
                      `(unless ,expression
                        (parse-error)))
  
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:                        (error "Failed to parse ~S as an rfc3339 time" time-string)
                         (return-from %split-timestring nil)))
                   (done ()
                     (return-from %split-timestring (list year month day hour minute second usec offset-hour offset-minute))))
            (parse))))))
  
  (defun parse-rfc3339-timestring (timestring &key (fail-on-error t)
  