anchor.diff:  
   ;; -------------------------------------------------------------
   ;; Handles 
  +
  +;; Q: how to solve the issue of multiple handles with the same parent having
  +;; the same hash? This results in them getting the handle fh
  +;; A: if we stop caring about generating the same handles each time then we can 
  +;; just use an incrementing integer?
  +
  +
  +(defun pack-handle-fh (hash parent-hash)
  +  (with-writer (writer (:list :uint64 :uint64))
  +    (pack #'writer (list hash parent-hash))))
  +(defun unpack-handle-fh (fh)
  +  (with-reader (reader (:list :uint64 :uint64))
  +    (unpack #'reader fh)))
   
   (defstruct (handle (:constructor %make-handle))
     hash
  
positive.code:       (log:debug "file doesn't exist ~S" (handle-pathname handle))
        (return-from allocate-handle nil))
  
      ;; the file exists, push it onto the list and the parent's children list
      (unless (find-handle provider (handle-fh handle))
        (setf (gethash (handle-fh handle) (simple-provider-handles provider))
  	    handle)
        (push (handle-fh handle) (handle-children dhandle)))
  
  
negative.code: 	 (hash (sxhash pathname))
  	 (handle 
  	  (%make-handle :hash hash
  			:fh (pack-handle-fh hash (handle-hash dhandle))
  			:pathname pathname
  			:parent (handle-fh dhandle)
  			:directory-p (or (cl-fad:directory-exists-p pathname)
  					 (string= name ".")
  					 (string= name "..")))))
      (when (handle-directory-p handle)
        (log:debug "Attempt to make a file handle from a directory")
        (return-from make-handle nil))
  
      handle))
  
  (defun make-dhandle (dhandle name)
    (declare (type handle dhandle)
  	   (type string name))
    (let* ((pathname (cl-fad:merge-pathnames-as-directory (handle-pathname dhandle)
  							(let ((lc (char name (1- (length name)))))
  							  (if (string= lc #\\)
  							      name
  							      (concatenate 'string name "\\")))))
  	 (hash (sxhash pathname))
  	 (handle 
  	  (%make-handle :hash hash
  			:fh (pack-handle-fh hash (handle-hash dhandle))
  			:pathname pathname
  			:parent (handle-fh dhandle)
  			:directory-p (and (cl-fad:directory-pathname-p pathname)
  