 	       ;; don't take column to make multiple same errors to a single.
 	       (msg (match-string 4 err))
 	       (wrn (string-match "^Warning" msg))
+               (hole (string-match "Found hole" msg))
 	       (info (ghc-make-hilit-info
 		      :file file
 		      :line line
 		      :msg  msg
-		      :err  (not wrn))))
+		      :err  (and (not wrn) (not hole))
+                      :hole hole)))
 	  (unless (member info infos)
 	    (ghc-add infos info)))))))
 

  "Face used for marking warning lines."
  :group 'ghc)

(defvar ghc-check-error-fringe (propertize "!" 'display '(left-fringe exclamation-mark)))

(defvar ghc-check-warning-fringe (propertize "?" 'display '(left-fringe question-mark)))

(defvar ghc-display-error nil
  "*An action to display errors/warnings for 'M-n' and 'M-p:


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(ghc-defstruct hilit-info file line msg err hole)

(defun ghc-check-send ()
  (let ((file (buffer-file-name)))
