   (interactive)
   (merlin-send-command "reset" (list "name" buffer-file-name))
   (setq merlin-lock-point (point-min))
+  (setq merlin-dirty-point nil)
   (merlin-delete-error-overlays)
   (setq merlin-pending-errors nil)
   (merlin-update-lock-zone-display)

  (if (not (merlin-is-last-user-p))
      (merlin-rewind))
  (save-excursion
    (setq merlin-lock-point (merlin-retract-to (point)))
    (merlin-tell-piece-split "struct" merlin-lock-point (point))
    (merlin-tell-till-end-of-phrase view-errors-p)))
  

  "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."
