anchor.diff:  (defroute "/test" ()
     (format nil "~A" (user-name (current-user))))
   
  +(defroute "/logged-in-p" ()
  +  (format nil "~A" (logged-in-p)))
  +
   ;;
   ;; Helper functions
  -(defun current-user ()
  -  (find-dao 'user :id (gethash :user-id *session* 0)))
  +(defun current-user-id ()
  +  (gethash :user-id *session* nil))
   
   (defun reset-current-user ()
     (remhash :user-id *session*))
  
positive.code:   (setf (gethash :user-id *session*) (object-id user)))
  
  (defun logged-in-p ()
    (not (null (current-user))))
  
  
  ;;
  ;; Error pages
  
  
negative.code:                                    (list :flash (flash) :type "success")))))
  
  (defroute "/users/:id/edit" (&key id)
    (logged-in-user)
    (setf current-user (find-dao 'user :id id))
    (render-with-current #P"users/edit.html"
            (list :user (list :id (object-id current-user)
                              :name (user-name current-user)
                              :email (user-email current-user)
                              :hash-email (make-md5-hexdigest
                                           (user-email current-user))))))
  
  (defroute ("/users/:id/update" :method :POST) (&key _parsed)
    ;;ひとまずリダイレクトさせるだけ
    (flash "update success")
    (redirect (format nil "/users/~A" (current-user-id))))
  
  (defroute "/login" ()
    (render-with-current #P"sessions/new.html"
                         (list :flash (flash)
                               :type "danger")))
  
  (defroute ("/login" :method :POST) (&key _parsed)
    (setf params (get-value-from-params "session" _parsed))
  