anchor.diff:  ;; Helper funtions
   
   (defun root-path (file-path)
  +  "Returns the application root path"
     (merge-pathnames file-path *application-root*))
   
   (defun root-directory (directory-path)
  +  "Returns the files in the directory with respect to the application root"
     (directory (root-path directory-path)))
   
   (defun random-file (files)
  +  "Given a list of files, returns a random element"
     (nth (random (list-length files)) files))
   
   (defmacro with-group (group &body body)
  +  "Ensures the user is a member of the group"
     `(if (search ,group (gethash :groups *session*))
          (progn ,@body)
          (throw-code 403)))
   
   (defmacro with-item (item &body body)
  +  "Ensures the item is a non-nil value"
     `(if ,item
          (progn ,@body)
          (throw-code 404)))
  
positive.code:   password
    groups)
  
  (defun get-user (username password)
    (if (or (null username) (null password))
        nil
        (with-connection (db)
          (retrieve-one
           (select :*
                   (from :users)
                   (where (:and (:= :username username)
                                (:= :password (:crypt password :password)))))
           :as 'user))))
  
  ;;
  ;; General Routing rules
  
  (defroute "/" ()
    (render "index.html"))
  
negative.code: ;;
  ;; Error pages
  
  (let ((http-error
         '((404 . "Not Found")
           (403 . "Insufficient Permissions"))))
    (defun error-reason (error-code)
      (cdr (assoc error-code http-error))))
  
  (defmethod on-exception ((app <web>) error-code)
    (declare (ignore app))
  