anchor.diff:        (push
          `(defun ,loader-name ()
             (setf ,hash-name (make-hash-table :test 'equal))
  -          (loop :for ,row-def :in (cl-csv:read-csv 
  +          (loop :for ,row-def :in (cl-csv:read-csv
                                      (merge-pathnames *jmdict-data* ,filename)
                                      :separator #\Tab :skip-first-p ,skip-first)
                :for ,row-count-var :from 0
  
positive.code: (defun fix-entities (source)
    "replaces entity definitions with abbreviations"
    (let ((entity-hash (cxml::dtd-gentities (cxml::dtd (slot-value source 'cxml::context)))))
      (maphash 
       (lambda (name entdef)
         (unless (member name '("lt" "gt" "amp" "apos" "quot") :test 'equal)
           (setf (cxml::entdef-value (cdr entdef)) name)))
       entity-hash)))
      
  (defun load-jmdict (&key (path *jmdict-path*) (load-extras t))
    (init-tables)
    (with-connection *connection*
  
negative.code:                  ,val-var-form))
              forms)))
      `(progn ,@(nreverse forms))))
  
  (csv-hash *pos-index* ("kwpos.csv")
            ((pos-id pos description) pos (cons (parse-integer pos-id) description))
            (val (car val)))
  