 (defun merlin-tell-to-point (&optional point)
   "Tell to merlin part of the buffer between START and END. START
 may be nil, in that case the current cursor of merlin is used."
+  (merlin-reset-user)
   (let* ((point (if point point (point)))
          (start (min point merlin-dirty-point))
          (start (car (merlin-send-cursor-command

    (accept-process-output (merlin-process) 0.1 nil t))
  merlin-result)

(defun merlin-send-command-async (command callback-if-success &optional callback-if-exn)
  "Send COMMAND (with arguments ARGS) to merlin asynchronously.
Give the result to callback-if-success.  If merlin reported an

    (when failed (message (cdr failed))))
  (merlin-error-reset))

(defun merlin-load-project-file (&optional buffer)
  "Load the .merlin file corresponding to BUFFER (or the current
buffer if BUFFER is nil)."
  (interactive)
  (let ((buffer (if buffer buffer buffer-file-name)))
    (when buffer
      (let* ((r (merlin-send-command (list 'project 'find buffer)))
             (failed (assoc 'failures r))
             (result (assoc 'result r)))
        (when failed (message (cdr failed)))
        (when (and result (listp (cdr result)))
          (setq merlin-project-file (cadr result)))
        (merlin-rewind buffer)))))

(defun merlin-goto-project-file ()
  "Goto the merlin file corresponding to the current file."
