anchor.diff:  (defun normalize-timeout (timeout)
     (assert (not (minusp timeout)) (timeout)
             "The timeout must be non-negative: ~A" timeout)
  -  (coerce timeout 'double-float))
  +  (coerce timeout 'timeout))
   
   (defun abs-timeout (timeout)
     (+ (osicat:get-monotonic-time) (normalize-timeout timeout)))
  
positive.code:     (integer (values timeout 0))
      (null    nil)
      (real
       (multiple-value-bind (q r) (truncate (coerce timeout 'double-float))
         (declare (type unsigned-byte q)
                  (type double-float r))
         (values q (the (values unsigned-byte t) (truncate (* r 1d6))))))
      (t
       (error "Timeout is not a real number or NIL: ~S" timeout))))
  
negative.code: ;;;
  ;;; time.lisp --- Various time-related functions.
  ;;;
  ;;; Copyright (C) 2006-2008, Stelian Ionescu  <sionescu@common-lisp.net>
  ;;;
  ;;; This code is free software; you can redistribute it and/or
  ;;; modify it under the terms of the version 2.1 of
  