            :content content))
     "\n")))
 
-(defun emdocs-release-markers (edit)
-  "docstring"
-  (set-marker (plist-get edit :start) nil)
-  (set-marker (plist-get edit :end) nil))
-
-(defun emdocs-release-markers-list (edit-list)
-  "docstring"
-  (loop for edit in edit-list
-        do (emdocs-release-markers edit)))
-
 (defun emdocs-explode-undo-list ()
-  (emdocs-release-markers-list emdocs-undo-list)
   (setq emdocs-undo-list nil)
   (setq emdocs-undo-posn nil))
 

  (unwind-protect
      (if (not emdocs-undo-posn)
          (message "No more undo information available!")
        (let ((undo-edit (car emdocs-undo-posn)))
          (cond ((string-equal (plist-get undo-edit :type)
                               "insert")
                 (delete-region (plist-get undo-edit :start)
                                (plist-get undo-edit :end)))
                ((string-equal (plist-get undo-edit :type)
                               "delete")
                 (goto-char (plist-get undo-edit :start))
                 (insert (plist-get undo-edit :content))
                 (set-marker (plist-get undo-edit :end)
                             (+ (plist-get undo-edit :start)
                                (length (plist-get undo-edit :content))))))))
    (setq-local emdocs-is-undo-insert nil)
    (setq-local emdocs-undo-posn (cdr emdocs-undo-posn))))

(defun emdocs-redo ()
  "docstring"

                   finally (return cur-undo-el))))
        (if (not emdocs-undo-target)
            (message "No more redo information available!")
          (throw 'more-wreckage t)
          (setq-local emdocs-undo-posn emdocs-undo-target)))
    (setq-local emdocs-is-undo-insert nil)))

(defun emdocs-attach-to-buffer (buffer ip)
