anchor.diff:          while (or (digit-char-p c) (member c '(#\: #\T #\t #\: #\- #\+ #\Z #\.)))
           do (princ c str)
           finally (unread-char c stream)))
  -   :allow-missing-elements-p t))
  +   :allow-missing-elements t))
   
   (defun %read-universal-time (stream char arg)
     (declare (ignore char arg))
  
positive.code:                      (cond ((= count 2)
                              (if (first parts)
                                  (full-date (first parts))
                                  (passert allow-missing-date-part-p))
                              (if (second parts)
                                  (full-time (second parts))
                                  (passert allow-missing-time-part-p))
                              (done))
                             ((and (= count 1)
                                   allow-missing-date-part-p
                                   (find time-separator time-string
                                         :start (car (first parts))
                                         :end (cdr (first parts))))
                              (full-time (first parts))
                              (done))
                             ((and (= count 1)
                                   allow-missing-time-part-p
                                   (find date-separator time-string
                                         :start (car (first parts))
                                         :end (cdr (first parts))))
  
negative.code:                           (fail-on-error t) (time-separator #\:)
                            (date-separator #\-)
                            (date-time-separator #\T)
                            (allow-missing-elements t)
                            (allow-missing-date-part allow-missing-elements)
                            (allow-missing-time-part allow-missing-elements)
                            (allow-missing-timezone-part allow-missing-elements))
    "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). On parsing failure, signals INVALID-TIMESTRING if FAIL-ON-ERROR is NIL, otherwise returns NIL."
    (declare (type character date-time-separator time-separator date-separator)
             (type simple-string time-string)
  