anchor.diff:     (is-cached url)
      (probe-file (text-loc url))
      (fresh-file-p (text-loc url))))
  +
  +(defun is-locked (url)
  +  (and
  +   (is-cached url)
  +   (probe-file (locked-text-loc url))))
   
   (defun has-failure (url)
     (and (is-cached url) (probe-file (failure-loc url))))
  
positive.code: (defun text-loc (url)
    (concatenate 'string (cache-loc url) "text"))
  
  (defun title-loc (url)
    (concatenate 'string (cache-loc url) "title"))
  
  
negative.code:   (with-file-lock ((make-pathname :directory (cache-loc url) :name "main"))
      (open (make-pathname :directory (cache-loc url) :name "page.html"))))
  
  ;;;FIXME: Need to clean up after crash that leaves main.lock in place.
  (defun grab-text (url &key (update t))
    (when update (update-page url))
    (let ((tname (if (probe-file (locked-text-loc url))
                     (locked-text-loc url)
                     (text-loc url))))
      (if (probe-file tname)
          (with-file-lock ((make-pathname :directory (cache-loc url) :name "main"))
            (read-file-into-string tname))
  