anchor.diff:      
       (defun dom-replace-cell (cell)
         (dom-replace (by-cell-id (@ cell id)) (cell-template cell))
  -      (mirror! cell))
  +      (setup-cell-mirror! cell))
   
       ;; CodeMirror and utilities
       (defun register-helpers (type object)
  
positive.code:     (defun cell-editor-contents (cell-id)
        (chain (cell-mirror cell-id) (get-value)))
  
      (defun mirror! (cell)
        (let* ((mirror)
  	     (cell-id (@ cell id))
  	     (options (create
  		       "async" t
  		       "lineNumbers" t
  		       "matchBrackets" t
  		       "autoCloseBrackets" t
  		       "lineWrapping" t
  		       "viewportMargin" -infinity
  		       "smartIndent" t
  		       "extraKeys" (create "Ctrl-Enter"
  					   (lambda (cmd)
  					     (let ((contents (cell-editor-contents cell-id)))
  					       (notebook/eval-to-cell cell-id contents)))
  					   "Ctrl-Space" 'autocomplete
  
  					   "Ctrl-Right" (lambda (cmd) (go-sexp :right (cell-mirror cell-id)))
  					   "Ctrl-Left" (lambda (cmd) (go-sexp :left (cell-mirror cell-id)))
  					   "Shift-Ctrl-Right" (lambda (cmd) (select-sexp :right (cell-mirror cell-id)))
  					   "Shift-Ctrl-Left" (lambda (cmd) (select-sexp :left (cell-mirror cell-id)))
  
  					   "Ctrl-Down" (lambda (cmd) (go-block :down (cell-mirror cell-id)))
  					   "Shift-Ctrl-Down" (lambda (cmd) (select-block :down (cell-mirror cell-id)))
  					   "Ctrl-Up" (lambda (cmd) (go-block :up (cell-mirror cell-id)))
  					   "Shift-Ctrl-Up" (lambda (cmd) (select-block :up (cell-mirror cell-id)))
  					   
  					   "Ctrl-Alt-K" (lambda (cmd) (kill-sexp :right (cell-mirror cell-id)))
  					   "Shift-Ctrl-Alt-K" (lambda (cmd) (kill-sexp :left (cell-mirror cell-id)))
  					   "Tab" 'indent-auto
  
  					   "Ctrl-]" (lambda (cmd) (go-cell :down cell-id))
  					   "Ctrl-[" (lambda (cmd) (go-cell :up cell-id))
  					   "Shift-Ctrl-]" (lambda (cmd) (transpose-cell! :down cell-id))
  					   "Shift-Ctrl-[" (lambda (cmd) (transpose-cell! :up cell-id))
  
  					   "Ctrl-;" (lambda (cmd) (toggle-comment-region (cell-mirror cell-id)))))))
  	(setf 
  	 mirror (chain -code-mirror (from-text-area (by-cell-id cell-id ".cell-contents") options))
  	 (@ cell editor) mirror)
  	(chain mirror (on 'cursor-activity
  			  (lambda (mirror)
  			    (unless (chain mirror (something-selected))
  
negative.code: 	      (chain (notebook-facts *notebook*) (unshift (list id 'cell nil)))
  	      (dom-append (by-selector ".cells")
  			  (cell-template cell))
  	      (setup-cell-mirror! cell)
  	      (scroll-to-elem (by-cell-id id))
  	      (show-editor id))))
  	'change-cell-type
  