anchor.diff:             msec)
           1000)))
   
  -(defun decode-interval (interval)
  -  "Returns the decoded interval as multiple values: nsec, usec, msec, sec, minute, hour, day, week."
  -  (multiple-value-bind (second-interval second-remainder)
  -      (floor interval)
  -    (multiple-value-bind (minute-interval second)
  -        (floor second-interval +seconds-per-minute+)
  -      (multiple-value-bind (hour-interval minute)
  -          (floor minute-interval +minutes-per-hour+)
  -        (multiple-value-bind (day-interval hour)
  -            (floor hour-interval +hours-per-day+)
  +(defun decode-duration (duration)
  +  "Returns the decoded duration as multiple values: nsec, usec, msec, sec, minute, hour, day, week."
  +  (multiple-value-bind (second-duration second-remainder)
  +      (floor duration)
  +    (multiple-value-bind (minute-duration second)
  +        (floor second-duration +seconds-per-minute+)
  +      (multiple-value-bind (hour-duration minute)
  +          (floor minute-duration +minutes-per-hour+)
  +        (multiple-value-bind (day-duration hour)
  +            (floor hour-duration +hours-per-day+)
             (multiple-value-bind (week day)
  -              (floor day-interval +days-per-week+)
  +              (floor day-duration +days-per-week+)
               (multiple-value-bind (msec msec-remainder)
                   (floor (* second-remainder 1000))
                 (multiple-value-bind (usec usec-remainder)
  
positive.code:            #:days-in-month
             #:timestamp-
             #:timestamp+
             #:interval
             #:decode-interval
             #:parse-interval
             #:format-interval
             #:maximize-time-part
             #:minimize-time-part
             #:first-day-of-year
  
negative.code: 
  (defun timestamp- (time-a time-b)
    "Returns the difference between TIME-A and TIME-B in seconds"
    (let ((nsec (- (nsec-of time-a) (nsec-of time-b)))
          (second (- (sec-of time-a) (sec-of time-b)))
          (day (- (day-of time-a) (day-of time-b))))
      (when (minusp nsec)
        (decf second)
        (incf nsec 1000000000))
      (when (minusp second)
        (decf day)
        (incf second +seconds-per-day+))
      (encode-duration :nsec nsec :sec second :day day)))
  
  (defun timestamp+ (time seconds)
    "Returns a new TIMESTAMP containing the sum of TIME and SECONDS"
  