anchor.diff:  
   (define-route logout-page ("logout")
     (if (logged-in-p)
  -      (progn
  -        (setf (hunchentoot:session-value :username) nil)))
  +      (setf (hunchentoot:session-value :username) nil))
     (redirect 'login-page))
   
   (defun json-to-string (obj)
  
positive.code: (defun page-title (title)
    (<:title (concatenate 'string title " | scrumli")))
  
  (define-route main ("")
    (if (logged-in-p)
        (<:html
         (<:head (page-title "Backlog")
                 (<:link :href *scrumelo-bootstrap-css-location*
                         :rel "stylesheet" :type "text/css")
                 (<:link :href *scrumelo-font-awesome-css-location*
                         :rel "stylesheet" :type "text/css")
                 (<:script :type "text/javascript"
                           :src *scrumelo-bootstrap-js-location*)
                 (<:script :type "text/javascript"
                           :src *scrumelo-jquery-js-location*)
                 (<:script :type "text/javascript"
                           :src *scrumelo-react-js-location*)
                 (<:script :type "text/javascript"
                           :src *scrumelo-jsxtransformer-js-location*))
         (<:body
          (<:div :class "navbar navbar-static-top navbar-inverse"
                 (<:div :class "navbar-inner"
                        (<:div :class "container"
                               (<:a :class "brand" "scrumli")
                               (<:div :class "pull-right"
                                      (<:span :class "navbar-text"
                                              (hunchentoot:session-value
                                               :username))
                                      (<:ul :class "nav pull-right"
                                            (<:li :class "divider-vertical")
                                            (<:li (<:a :href "/logout"
                                                       "Logout")))))))
          (<:div :class "container"
                 (<:h1 "Backlog")
                 (<:div :id "content")
                 (<:script :type "text/jsx" :src "js/main.js"))))
        (redirect 'login-page)))
  
  (define-route react-ui ("js/main.js"
                          :content-type "application/ecmascript")
    (merge-pathnames "js/main.js" *static-directory*))
  
  (define-route login-js ("js/login.js"
                          :content-type "application/ecmascript")
    (merge-pathnames "js/login.js" *static-directory*))
  
  (define-route stories-json ("stories" :content-type "text/json")
    (if (logged-in-p)
  
negative.code:         (encode-json (get-all-stories) out))
        403))
  
  (defmacro with-post-parameters (parameters &body body)
    `(let ,(mapcar (lambda (p)
                     (list (intern (string-upcase p))
                           `(hunchentoot:post-parameter ,p)))
                   parameters)
       ,@body))
  
  (define-route stories-new ("stories/new" :method :post)
    (if (logged-in-p)
        (with-post-parameters ("role" "necessity" "headline" "content")
          (post-story role necessity headline content
                      (hunchentoot:session-value :username))
          200)
        403))
  
  (define-route tasks-new ("stories/tasks/new" :method :post)
    (if (logged-in-p)
        (with-post-parameters ("storyId" "description")
          (post-task storyid description
                     (hunchentoot:session-value :username))
          200)
        403))
  
  