   (setq merlin-lock-point (merlin-retract-to point))
   (merlin-tell-piece-split "struct" merlin-lock-point point)
   (merlin-flush-tell)
-  (if (merlin-view-errors)
+  (if (merlin-view-errors view-errors-p)
       (setq merlin-lock-point point)
     (let ((msg (current-message)))
       (setq merlin-lock-point (merlin-seek merlin-lock-point))

	  (setq merlin-idle-point (point))))))

(defun merlin-enter ()
  (interactive)
  (newline)
  (if merlin-continuous-feed
      (merlin-point)))
;; Mode definition
(defvar merlin-mode-map
  (let ((map (make-sparse-keymap)))
    (define-key map (kbd "C-c <C-return>") 'merlin-point)
    (define-key map (kbd "C-c C-t") 'merlin-show-type-of-point)
    (define-key map (kbd "C-c l") 'merlin-use)
    (define-key map (kbd "C-c C-x") 'merlin-next-error)

                     overlay)) errors))
  (message "(pending error, use C-c C-x to jump)"))

(defun merlin-view-errors (view-errors-p)
  "View the errors of the data that have been fed to merlin"
  (let ((output (merlin-send-command "errors" nil)))
    (if (> (length (elt output 1)) 0)
	(progn
          (if view-errors-p
              (merlin-handle-errors (elt output 1)))
	  nil)
      (progn
	(message "ok")
