anchor.diff:            (progn
               (<:p (<:ah "Successfully logged in as " username "."))
               (push username *users*)
  -            (setf (session-value 'username) username)
  +            (setf (session-value 'username) username
  +                  (session-value 'last-message-id) *max-message-id*)
               (format t "~&~A logged in.~%" username)
               (redirect "/"))
             (<:div
  
positive.code:            (defun ,name ,lambda-list ,@body))))
  
  (defajax add-message (msg)
    (push msg *current-story*)
    (format t "~&~A entered a new message: ~S~%" (session-value 'username) msg)
    (update-chat))
  
  (defajax update-chat ()
    (with-yaclml-output-to-string
      (mapc (lambda (message)
              (<:p (<:ai message)))
            (reverse *current-story*))))
  
negative.code: (cl:in-package #:belletrist)
  
  (defvar *server* nil)
  (defparameter *current-story* nil)
  (defvar *users* nil)
  (defvar *max-message-id* 0)
  
  (defstruct user-message id user timestamp message)
  
  (defun add-user-message (user message &optional (timestamp (get-universal-time))
                           &aux (id (incf *max-message-id*)))
    (push (make-user-message :id id :user user :timestamp timestamp :message message)
          *current-story*)
    id)
  
  (defun get-recent-messages (last-message-id)
    (member (1+ last-message-id) (reverse *current-story*) :key #'user-message-id))
  
  (defun session-cleanup (session)
    (let ((username (session-value 'username session)))
  