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:          (cl-hash-util:collect :title "")
           (cl-hash-util:collect :status "failure")
           (cl-hash-util:collect :message "Not a valid URL"))
          ((is-fresh url)
           (cl-hash-util:collect :text (grab-text url))
           (cl-hash-util:collect :title (grab-title url :alternate "" :update nil))
           (cl-hash-util:collect :status "success")
  
negative.code: (in-package :wf/text-extract)
  
  ;;;(defparameter *cache-path* "/home/ben/opinml/")
  ;;(defparameter *cache-age* (encode-time-delta 0 10 0 0))
  ;; FIXME: We don't really need to refresh the texts. Whole thing needs rethinking. Should we store
  ;; texts at all?
  (defparameter *cache-age* (encode-time-delta 0 0 0 90))
  (defvar *bynum*)
  (defvar *byurl*)
  ;;(defparameter *text-extractor-script*
  