anchor.diff:  
   ;;; News
   
  -(defvar *tootsbook-cache* nil)
  -(defvar *tootsbook-fetched* 0)
  -
  -(defvar *tootsbook-refresh-seconds* (* 60 5))
  +(defvar *tootsbook-cache* nil
  +  "This is used as a cache for the current headlines from Tootsbook for a short time. See *TOOTSBOOK-REFRESH-SECONDS* for a definition of ``a short time.''")
  +(defvar *tootsbook-fetched* 0
  +  "At what  universal-time was  *TOOTSBOOK-CACHE* last fetched  from the
  +  Tootsbook RDF feed?")
  +
  +(defvar *tootsbook-refresh-seconds* (* 60 5)
  +  "How many seconds must pass between checking Tootsbook for new headlines?")
   
   (defun fetch-tootsbook/http ()
  -  (setf *tootsbook-cache*
  -        (cxml:parse-octets
  -         (drakma:http-request
  -          (puri:uri "http://www.tootsbook.com/tootsbook/feed/")
  -          :content-type "application/rdfxml")
  -         (cxml-dom:make-dom-builder))))
  +  "Fetch new  headlines from  Tootsbook, and store  the RDF-XML  data in
  +*TOOTSBOOK-CACHE*"
  +  (let ((rdf (cxml:parse-octets
  +              (drakma:http-request
  +               (puri:uri "http://www.tootsbook.com/tootsbook/feed/")
  +               :content-type "application/rdfxml")
  +              (cxml-dom:make-dom-builder))))
  +    (when rdf
  +      (setf *tootsbook-fetched* (get-universal-time)
  +            *tootsbook-cache* rdf))))
   
   (defun tootsbook-headlines ()
  +  "Return  the current  (or,  at least,  fairly  recent) headlines  from
  +Tootsbook's RDF feed. Uses a local cache, when available.
  +
  +Returns the RDF as a raw string"
     (when (> (get-universal-time)
              (+ *tootsbook-refresh-seconds* *tootsbook-fetched*))
       (fetch-tootsbook/http))
     *tootsbook-cache*)
   
   (defun rdf-story-to-plist (story)
  +  "Convert and  RDF story  (DOM object)  into a  property list  with the
  +title, link, content, and description."
     (loop for (tag label)
        in '(("title" :title) ("link" :link)
             ("content:encoded" :content) ("description" :description))
  
positive.code:            (if had-birthday-p 1 0))))))
  
  (defmethod player-age :around (player)
    (let ((dob (player-date-of-birth player)))
      (if dob (legal-age dob) (call-next-method))))
  
  (defun player-adult-p (player)
    (>= (player-age player) 18))
  
  (defun player-under-13-p (player)
    (< (player-age player) 13))
  
  (defun player-over-13-p (player)
    (>= (player-age player) 13))
  
  (defclass item ()
  
negative.code:   :test 'equal)
  
  (defroute "/tootstest/zomg" ()
    "Zombies! Oh, my God! — The  client-side can report its crashes to the
  host-side, here. The crash report should arrive in JSON format."
    (assert (string-equal +application/json+ (request-content-type *request*)
                          :end2 #.(length +application/json+))
            () "Zombies should always use JSON, not ~a" (request-content-type *request*))
  