anchor.diff:                       (cond ((= count 2)
                               (if (first parts)
                                   (full-date (first parts))
  -                                (passert allow-missing-date-part-p))
  +                                (passert allow-missing-date-part))
                               (if (second parts)
                                   (full-time (second parts))
  -                                (passert allow-missing-time-part-p))
  +                                (passert allow-missing-time-part))
                               (done))
                              ((and (= count 1)
  -                                 allow-missing-date-part-p
  +                                 allow-missing-date-part
                                    (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
  +                                 allow-missing-time-part
                                    (find date-separator time-string
                                          :start (car (first parts))
                                          :end (cdr (first parts))))
  
positive.code:                           (fail-on-error t) (time-separator #\:)
                            (date-separator #\-)
                            (date-time-separator #\T)
                            (allow-missing-elements-p t)
                            (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). 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)
  
negative.code:                                     (values))
                                 (values)))
                             (progn
                               (passert allow-missing-elements)
                               (values))))))
                   (with-parts-and-count ((start end split-chars) &body body)
                     `(multiple-value-bind (parts count) (split ,start ,end ,split-chars)
  