   "Retract merlin's view to POINT"
   (merlin-seek point))
 
-(defun merlin-dirty-retract-to (point)
-  "Retract merlin's view to last point shared between buffer and merlin before POINT"
-  (if merlin-dirty-point
-      (merlin-seek (min merlin-dirty-point point))
-      (merlin-seek point)))
-
 (defun merlin-update-lock-zone-display ()
   "Update the locked zone display, according to `merlin-display-lock-zone', ie.
  iterates through it and call each method."

(defvar merlin-pending-errors nil
  "Pending errors.")
(defvar merlin-lock-point 0
  "Position of merlin cursor.")
(defvar merlin-dirty-point nil
  "Last position where contents of local buffer and merlin buffer agree.")
(defvar merlin-pending-errors-overlays nil
  "Overlays for the pending errors.")
(defvar merlin-highlight-overlay nil "Merlin overlay used for highlights.")

  (if (and merlin-mode (< start merlin-lock-point))
      (progn
        (setq merlin-lock-point (merlin-retract-to start))
        (merlin-update-lock-zone-display))))

;; COMPLETION
(defun merlin-extract-complete (prefix l)
