anchor.diff:                      (floor ,dividend ,divisor)
                     (setf ,place remainder)
                     quotient)))
  -    (let* (remaining-secs
  +    (let* (remaining-days
  +           remaining-secs
              remaining-nsecs
              (whole-units
               (ecase unit
  +              (:week (+ (divide-storing-remainder (day-of duration) local-time:+days-per-week+ remaining-days)
  +                        (divide-storing-remainder (sec-of duration) local-time:+seconds-per-day+ remaining-secs)
  +                        (divide-storing-remainder (nsec-of duration) +nsecs-per-day+ remaining-nsecs)))
                 (:day (+ (day-of duration)
                          (divide-storing-remainder (sec-of duration) local-time:+seconds-per-day+ remaining-secs)
                          (divide-storing-remainder (nsec-of duration) +nsecs-per-day+ remaining-nsecs)))
  
positive.code:               (:nsec (+ (* (day-of duration) +nsecs-per-day+)
                          (* (sec-of duration) +nsecs-per-second+)
                          (nsec-of duration))))))
        (values whole-units (duration :sec (or remaining-secs 0) :nsec (or remaining-nsecs 0))))))
  
  (defun duration+ (&rest durations)
    "Returns a fresh duration representing the sum of the lengths of its arguments."
  
negative.code: (in-package :ltd)
  1
  (eval-when (:compile-toplevel :load-toplevel :execute)
    (defconstant +nsecs-per-second+ 1000000000)
    (defconstant +nsecs-per-minute+ (* +nsecs-per-second+ local-time:+seconds-per-minute+))
    (defconstant +nsecs-per-hour+ (* +nsecs-per-second+ local-time:+seconds-per-hour+))
    (defconstant +nsecs-per-day+ (* +nsecs-per-second+ local-time:+seconds-per-day+))
    (defconstant +nsecs-per-week+ (* +nsecs-per-day+ local-time:+days-per-week+)))
  
  (defclass duration ()
    ((day :accessor day-of :initarg :day :initform 0 :type integer)
  