anchor.diff:  (in-package #:montezuma)
  +
  +
  +(defvar *valid-index-options*
  +  '(:path :create-if-missing-p :create-p :default-field
  +    :id-field :default-search-field :analyzer :directory
  +    :close-directory-p :occur-default :wild-lower-p :default-slop
  +    :key :use-compound-file-p :handle-parse-errors-p :auto-flush-p))
  +
  +(defun index-options-list-p (list)
  +  (do ((options list (cddr options)))
  +      ((endp options) T)
  +    (when (not (member (car options) *valid-index-options*))
  +      (return-from index-options-list-p NIL))))
  +
  +(deftype index-option () `(member ,@*valid-index-options*))
  +(deftype index-options-list () '(satisfies index-options-list-p))
  +
  +(defun get-index-option (options option)
  +  (check-type option index-option)
  +  (getf options option))
  +
  +(define-setf-expander get-index-option (place option &environment env)
  +  (multiple-value-bind (vars vals store-vars writer-form reader-form)
  +      (get-setf-expansion place env)
  +    (declare (ignore writer-form))
  +    (let ((goption (gensym "OPTION"))
  +	  (gstore (if store-vars (first store-vars) (gensym "STORE"))))
  +      (values
  +       (list* goption vars)
  +       (list* option vals)
  +       (list gstore)
  +       `(progn
  +	  (check-type ,goption index-option)
  +	  (setf (getf ,reader-form ,goption) ,(car store-vars)))
  +       `(getf ,goption ,reader-form)))))
  +
   
   (defclass index ()
     ((key)
  
positive.code: 	     (setf dir (make-instance 'fs-directory
  				      :path directory
  				      :create-p create-p))
  	     (setf (getf options :close-dir-p) T))
  	    ((typep directory 'directory)
  	     (setf dir directory)))
        (add-indexes (writer self) (vector old-dir)))))
  
negative.code: 		   ((typep new-val 'document)
  		    (setf document new-val))
  		   (T
  		    (setf (aref document (get-index-option options :default-field))
  			  (string new-val))))
  	     (delete reader id)
  	     (let ((writer (writer self)))
  