anchor.diff:         (setf (gethash ,uri *handlers*) ,handler))))
   
   (defmacro define-closing-handler ((name &key (content-type "text/html")) &body body)
  -  `(bind-handler ,name (make-handler (:close? t :content-type ,content-type) ,@body)))
  -
  -(defmacro define-stream-handler ((name &key (content-type "text/event-stream")) &body body)
  -  `(bind-handler ,name (make-handler (:content-type ,content-type) ,@body)))
  -
  -(define-closing-handler (index.html)
  -  "<html><head><title>Test Page</title></head><body><h1>Hello from House!</h1></body></html>")
  -
  -(define-closing-handler (test.json :content-type "application/json")
  -  "{\"this is\": \"a test\"}")
  +  `(bind-handler ,name (make-closing-handler (:content-type ,content-type) ,@body)))
  +
  +(defmacro define-stream-handler ((name) &body body)
  +  `(bind-handler ,name (make-stream-handler ,@body)))
   
   ;;;;; Session-related
   (defun new-session-token ()
  
positive.code:       (write-ln "Set-Cookie: " it))
      (when (keep-alive? res) 
        (write-ln "Connection: keep-alive")
        (write-ln "Expires: Thu, 01 Jan 1970 00:00:01 GMT"))
      (awhen (body res)
        (write-ln "Content-Length: " (write-to-string (length it))) (crlf stream)
  
negative.code:     (crlf stream)
      (values)))
  
  (defmethod write! ((res sse) (stream stream))
    (format stream "~@[id: ~a~%~]~@[event: ~a~%~]~@[retry: ~a~%~]data: ~a~%~%"
  	  (id res) (event res) (retry res) (data res)))
  
  (defmethod write! (msg (sock usocket))
    (write! msg (socket-stream sock)))
  
  ;;;;; Defining Handlers
  (defmacro make-closing-handler ((&key (content-type "text/html")) &body body)
    `(lambda (sock cookie? session parameters)
       (declare (ignorable session parameters))
       (let ((res (make-instance 
  		 'response 
  		 :content-type ,content-type 
  		 :cookie (unless cookie? (token session))
  		 :body (progn ,@body))))
         (write! res sock)
         (socket-close sock))))
  
  (defmacro make-stream-handler (&body body)
    `(lambda (sock cookie? session parameters)
       (declare (ignorable session parameters))
       (let ((res (progn ,@body)))
         (write! (make-instance 'response
  		:keep-alive? t :content-type "text/event-stream" 
  		:cookie (unless cookie? (token session))) sock)
         (awhen res (write! (make-instance 'sse :data it) sock))
         (force-output (socket-stream sock)))))
  
  (defmacro bind-handler (name handler)
    (let ((uri (format nil "/~(~a~)" name)))
  