anchor.diff:        (:script :type "text/javascript" :src "/js/main.js"))
        (:body
         (:h1 "Hello!")
  -      (:input)))))
  +      (:textarea :class "cell")
  +      (:pre :class "result")))))
   
   (define-json-handler (eval) (thing)
  -  (let ((res (eval (read-from-string thing))))
  -    (hash () 
  -      :request thing 
  -      :result-type (type-of res) 
  -      :result res)))
  +  (handler-case
  +      (let ((res (multiple-value-list (eval (read-from-string thing)))))
  +	(hash () 
  +	  :request thing 
  +	  :result-type (mapcar #'type-of res) 
  +	  :result res))
  +    (error (e)
  +      (hash ()
  +	:request thing
  +	:result-type (list "error")
  +	:result (list (cl-mop:to-alist e))))))
   
   (define-closing-handler (js/base.js :content-type "application/javascrip") ()
     (ps (defun dom-ready (callback)
  
positive.code: 
        (defun by-selector (selector)
  	(chain document (query-selector selector)))
  
        (defun by-selector* (selector)
  	(chain document (query-selector-all selector)))
  
negative.code: 	(eql (chain -object prototype to-string (call obj)) type-string))
        (defun object? (obj) (type? obj "[object Object]"))
  
        (defun join (strings &optional (separator "")) (chain strings (join separator)))
  
        (defun encode (string)
  	(encode-u-r-i-component string))
       
        (defun string->obj (string)
  	(chain -j-s-o-n (parse string)))
  
        (defun obj->string (object)
  	(chain -j-s-o-n (stringify object)))
  
        (defun obj->params (object)
  	(let ((res (new (-array))))
  