anchor.diff:       do (js-eval :common-lisp (caddar (lookup book :a cell-id :b :contents)))))
   
   (defun load-notebook! (name)
  -  (let ((book (load! name :indices '(:a :b :c :ab :abc))))
  +  (let ((book (load! :fact-base name :indices '(:a :b :c :ab :abc))))
       (eval-notebook-code book)
       (setf (gethash name *notebooks*) book)))
   
  
positive.code:   (remhash name *notebooks*))
  
  (defun new-notebook! (name)
    (let ((book (make-fact-base :indices '(:a :b :c :ab) :file-name name)))
      (insert-new! book :notebook-name name)
      (let ((cont (format nil "(:h1 \"~a\")" name)))
        (new-cell! book :cell-type :cl-who :contents cont :value (js-eval :cl-who cont)))
  
negative.code: ;;;;; Model-related
  (defvar *notebooks* 
    (make-hash-table :test 'equal))
  (defvar *storage*
    (merge-pathnames ".cl-notebook/" (user-homedir-pathname)))
  
  (defmethod new-cell! ((book fact-base) &key (cell-type :common-lisp) (contents "") (value ""))
    (multi-insert! book `((:cell nil) (:cell-type ,cell-type) (:contents ,contents) (:value ,value))))
  