;ELC
;;; Compiled by haakon@haakon-laptop on Thu Aug 22 10:20:07 2013
;;; from file /home/haakon/.emacs.d/elpa/haskell-mode-13.7/haskell-mode.el
;;; in Emacs version 24.2.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" load-file-name))

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\207" [require dabbrev compile flymake outline haskell-align-imports haskell-sort-imports haskell-string cl] 2)
#@40 The release version of `haskell-mode'.
(defconst haskell-version "13.7" (#$ . 761))
#@36 The Git version of `haskell-mode'.
(defconst haskell-git-version "13.07-0-g381cc63" (#$ . 851))
#@102 Package base directory of installed `haskell-mode'.
Used for locating additional package data files.
(defvar haskell-mode-pkg-base-dir (file-name-directory load-file-name) (#$ . 954))
#@211 Show the `haskell-mode` version in the echo area.
With prefix argument HERE, insert it at point.
When FULL is non-nil, use a verbose version string.
When MESSAGE is non-nil, display a message with the version.
(defalias 'haskell-version #[(&optional here) "\305\306\307\217\310\311	\n$\f\203c\202\312\313\"*\207" [haskell-mode-dir haskell-version haskell-git-version _version here nil (byte-code "\300\301\302!\206\303!\207" [file-name-directory locate-library "haskell-mode" ""] 3) ((error)) format "haskell-mode version %s (%s @ %s)" message "%s"] 5 (#$ . 1145) "P"])
#@56 Display information on recent changes to haskell-mode.
(defalias 'haskell-mode-view-news #[nil "r\301\302\303\"!q\210eb\210\304\305!\210\306\305!\210\307 )\207" [haskell-mode-pkg-base-dir find-file-read-only expand-file-name "NEWS" hide-sublevels 1 outline-next-visible-heading show-subtree] 4 (#$ . 1732) nil])
(custom-declare-group 'haskell nil "Major mode for editing Haskell programs." :link '(custom-manual "(haskell-mode)") :group 'languages :prefix "haskell-")
#@162 Browse the haskell customize sub-tree.
This calls 'customize-browse' with haskell as argument and makes
sure all haskell customize definitions have been loaded.
(defalias 'haskell-customize #[nil "\300\301\302\"\210\303\304!\207" [mapc require (haskell-checkers haskell-doc haskell-font-lock haskell-indentation haskell-indent haskell-interactive-mode haskell-menu haskell-process haskell-yas inf-haskell) customize-browse haskell] 3 (#$ . 2208) nil])
#@440 *If not nil, the current buffer contains a literate Haskell script.
Possible values are: `bird' and `tex', for Bird-style and LaTeX-style
literate scripts respectively.  Set by `haskell-mode' and
`literate-haskell-mode'.  For an ambiguous literate buffer -- i.e. does
not contain either "\begin{code}" or "\end{code}" on a line on
its own, nor does it contain ">" at the start of a line -- the value
of `haskell-literate-default' is used.
(defvar haskell-literate nil (#$ . -2667))
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local haskell-literate put safe-local-variable symbolp] 4)
#@154 Default value for `haskell-literate'.
Used if the style of a literate buffer is ambiguous.  This variable should
be set to the preferred literate style.
(custom-declare-variable 'haskell-literate-default ''bird '(#$ . 3285) :group 'haskell :type '(choice (const bird) (const tex) (const nil)))
#@30 Keymap used in Haskell mode.
(defvar haskell-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\306#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\302\322\323#\210\302\324\325#\210\302\326\327#\210\302\330\331#\210)\207" [map make-sparse-keymap define-key [24 4] inferior-haskell-send-decl [3 26] switch-to-haskell [3 12] inferior-haskell-load-file [3 2] "" inferior-haskell-type "	" inferior-haskell-info [3 134217774] inferior-haskell-find-definition "" inferior-haskell-find-haddock [3 22] haskell-check [3 67108910] haskell-mode-format-imports [remap delete-indentation] haskell-delete-indentation [backtab] unindent-for-tab-command] 4) (#$ . 3585))
#@34 Menu for the Haskell major mode.
(defvar haskell-mode-menu nil (#$ . 4325))
(byte-code "\301\302\303\304\305\306\307\310\311\312\310\313\310\314\315!\203\316\202\317\320BBBBBBBBBBB$\207" [haskell-mode-map easy-menu-do-define haskell-mode-menu "Menu for the Haskell major mode." "Haskell" ["Indent line" indent-according-to-mode] ["Indent region" indent-region mark-active] ["(Un)Comment region" comment-region mark-active] "---" ["Start interpreter" switch-to-haskell] ["Load file" inferior-haskell-load-file] ["Load tidy core" ghc-core-create-core] default-boundp eldoc-documentation-function ["Doc mode" eldoc-mode :style toggle :selected (bound-and-true-p eldoc-mode)] ["Doc mode" haskell-doc-mode :style toggle :selected (and (boundp 'haskell-doc-mode) haskell-doc-mode)] (["Customize" (customize-group 'haskell)])] 16)
#@36 Syntax table used in Haskell mode.
(defvar haskell-mode-syntax-table (byte-code "\303 \304\305\306#\210\304\307\306#\210\304\310\311#\210\304\312\313#\210\304\314\315#\210\304\316\317#\210\304\320\321#\210\304\322\323#\210\304\324\325#\210\304\326\327#\210\304\330\331#\210\304\332\333#\210\304\334\335#\210\336\211\337\340\341 \"\210*\304\342\343#\210\304\344\345#\210\346\347\350\"\210\351\352!\204}\346\353\354\"\210\346\355\356\"\210)\207" [table lim i make-syntax-table modify-syntax-entry 32 " " 9 34 "\"" 39 "'" 95 "w" 40 "()" 41 ")(" 91 "(]" 93 ")[" 123 "(}1nb" 125 "){4nb" 45 "_ 123" 10 ">" nil map-char-table #[(k v) "\305\232\2051	:\203	@	A\202		\nX\2051\n\306V\203*\307\n\310\f#\210\nT\211\202\207" [v k i lim table (1) 127 modify-syntax-entry "_"] 5] standard-syntax-table 96 "$`" 92 "\\" mapc #[(x) "\302\303	#\207" [x table modify-syntax-entry "_"] 4] "!#$%&*+./:<=>?@^|~" featurep mule #[(x) "\302\303	#\207" [x table modify-syntax-entry "_"] 4] "Â¡Â¢Â£Â¤Â¥Â¦Â§Â¨Â©ÂªÂ«Â¬Â­Â®Â¯Â°Â±Â²Â³Â´ÂµÂ¶Â·Â¸Â¹ÂºÂ»Â¼Â½Â¾Â¿Ã—Ã·" #[(x) "\302\303	#\207" [x table modify-syntax-entry "w"] 4] "Ã€Ã�Ã‚ÃƒÃ„Ã…Ã†Ã‡ÃˆÃ‰ÃŠÃ‹ÃŒÃ�ÃŽÃ�Ã�Ã‘Ã’Ã“Ã”Ã•Ã–Ã˜Ã™ÃšÃ›ÃœÃ�ÃžÃŸÃ Ã¡Ã¢Ã£Ã¤Ã¥Ã¦Ã§Ã¨Ã©ÃªÃ«Ã¬Ã­Ã®Ã¯Ã°Ã±Ã²Ã³Ã´ÃµÃ¶Ã¸Ã¹ÃºÃ»Ã¼Ã½Ã¾Ã¿"] 4) (#$ . 5160))
#@87 Return the identifier under point, or nil if none found.
May return a qualified name.
(defalias 'haskell-ident-at-point #[nil "\212m\204\304fz\305=\203\306\304x\210\304\307\310!\203'\311\312!\210`\313\312!\210`D\2026\311\314!\210\313\315!\210`\313\314!\210`D\211@	A@\nb\210\307\316!\203of\317=\203oTb\203o\212\320\313\307\310!\203a\312\202b\314!!?\205k`\211)\204A\nb\210\304f\317=\203|\321u\210`Sf\317=\203\240\322u\210\320\311\314!!\204\240\313\315!\203\240\307\316!\203\240`\202|\323\n\"-\207" [case-fold-search #1=#:--cl-var-- start end nil 32 " 	" looking-at "\\s_" skip-syntax-backward "_" skip-syntax-forward "w'" "'" "[[:upper:]]" 46 zerop 1 -1 buffer-substring-no-properties] 5 (#$ . 6440)])
#@56 Like `delete-indentation' but ignoring Bird-style ">".
(defalias 'haskell-delete-indentation #[(&optional arg) "\206	\303=\205\304\305\n!)\207" [fill-prefix haskell-literate arg bird ">" delete-indentation] 2 (#$ . 7174) "*P"])
#@1441 Hook run after entering Haskell mode.

--------------------------------------------------------------------------------

CONFIGURING INDENTATION

  Using this you can configure the Haskell indentation mode. There
  are three major Haskell indentation modes:

  `haskell-indentation', Kristof Bastiaensen
    Intelligent semi-automatic indentation, mark two. How to enable:
    (custom-set-variables
     '(haskell-mode-hook '(turn-on-haskell-indentation)))

  `haskell-indent', Guy Lapalme
    Intelligent semi-automatic indentation. How to enable:
    (custom-set-variables
     '(haskell-mode-hook '(turn-on-haskell-indentation)))

  `haskell-simple-indent', Graeme E Moss and Heribert Schuetz
    Simple indentation. How to enable:
    (custom-set-variables
     '(haskell-mode-hook '(turn-on-haskell-simple-indent)))

  You can either:

   1) Use the code above if you're more Elisp savvy, and put it
      in your .emacs or similar file (type C-M-x to run each
      one), or

   2) customize the variable by ``M-x customize-group'' (see the
      link below), or

   3) some people prefer to add custom hooks like the below:

      (add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)

  In order to test each one after enabling you can re-run M-x
  haskell-mode in the same buffer.

  Do not select more than one of the three indentation modes.

--------------------------------------------------------------------------------
(custom-declare-variable 'haskell-mode-hook 'nil '(#$ . 7416) :type 'hook :group 'haskell :options (byte-code "\300\301\302\303\304!\203
\305\202\306\307\310\311!\205\312\313\"BBBB\207" [turn-on-haskell-indent turn-on-haskell-indentation turn-on-font-lock boundp eldoc-documentation-function turn-on-eldoc-mode turn-on-haskell-doc-mode append fboundp capitalized-words-mode (capitalized-words-mode) (turn-on-haskell-simple-indent turn-on-haskell-doc-mode turn-on-haskell-decl-scan imenu-add-menubar-index turn-on-haskell-unicode-input-method)] 7))
(byte-code "\300\301\302\303!\203\f\303\202
\304\"\210\305\306N\204\307\305\306\310\311!#\210\312\313!\204)\307\313\314\315#\210\300\207" [defalias haskell-parent-mode fboundp prog-mode fundamental-mode haskell-mode-hook variable-documentation put purecopy "Hook run when entering Haskell mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp haskell-mode-map definition-name haskell-mode] 5)
(defvar haskell-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [haskell-mode-map variable-documentation put purecopy "Keymap for `haskell-mode'." boundp haskell-mode-syntax-table definition-name haskell-mode] 5)
(defvar haskell-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [haskell-mode-syntax-table variable-documentation put purecopy "Syntax table for `haskell-mode'." haskell-mode-abbrev-table definition-name haskell-mode] 5)
(defvar haskell-mode-abbrev-table (progn (define-abbrev-table 'haskell-mode-abbrev-table nil) haskell-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\210\302\305\310\311#\207" [haskell-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `haskell-mode'." haskell-mode derived-mode-parent haskell-parent-mode custom-mode-group haskell] 5)
#@1460 Major mode for editing Haskell programs.

See also Info node `(haskell-mode)Getting Started' for more
information about this mode.

Blank lines separate paragraphs, comments start with `-- '.
\<haskell-mode-map>
Literate scripts are supported via `literate-haskell-mode'.
The variable `haskell-literate' indicates the style of the script in the
current buffer.  See the documentation on this variable for more details.

Modules can hook in via `haskell-mode-hook'.  The following modules
are supported with an `autoload' command:

   `haskell-decl-scan', Graeme E Moss
     Scans top-level declarations, and places them in a menu.

   `haskell-doc', Hans-Wolfgang Loidl
     Echoes types of functions or syntax of keywords when the cursor is idle.

   `haskell-indentation', Kristof Bastiaensen
     Intelligent semi-automatic indentation Mk2

   `haskell-indent', Guy Lapalme
     Intelligent semi-automatic indentation.

   `haskell-simple-indent', Graeme E Moss and Heribert Schuetz
     Simple indentation.

Module X is activated using the command `turn-on-X'.  For example,
`haskell-indent' is activated using `turn-on-haskell-indent'.
For more information on a module, see the help for its `X-mode'
function.  Some modules can be deactivated using `turn-off-X'.  (Note
that `haskell-doc' is irregular in using `turn-(on/off)-haskell-doc-mode'.)

Use `haskell-version' to find out what version this is.

Invokes `haskell-mode-hook'.

\{haskell-mode-map}
(defalias 'haskell-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324@\325\"\204V@A=\204V\326@\325AC#\210\327!\210\330\f!\210@A\306\331!\210\332BP\306\333!\210\306\334!\210\335\306\336!\210\337\306\340!\210\341 \306\342!\210\343\"\306\344!\210\345$\306\346!\210\347&\306\350!\210\351(\306\352!\210\337*\306\353!\210\354+\306\355!\210\356-\306\357!\210\360/\306\361!\210\3621\306\363!\210\3373\306\364!\210\3654\306\366!\210\3376\306\367!\210\3377\306\370!\210\3378\306\371!\210\3729\337C\373\374\375\337\307$\210\373\376\377\337\307$\210)\201D\201E!\207" [delay-mode-hooks major-mode mode-name haskell-mode-map haskell-mode-syntax-table parent make-local-variable t haskell-parent-mode haskell-mode "Haskell" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table paragraph-start "^$\\|" paragraph-separate fill-paragraph-function haskell-fill-paragraph adaptive-fill-mode nil comment-start "-- " comment-padding 0 comment-start-skip "[-{]-[ 	]*" comment-end "" comment-end-skip "[ 	]*\\(-}\\|\\s>\\)" parse-sexp-ignore-comments indent-line-function haskell-mode-suggest-indent-choice eldoc-documentation-function haskell-doc-current-info imenu-create-index-function haskell-ds-create-imenu-index font-lock-defaults (haskell-font-lock-choose-keywords nil nil ((39 . "w") (95 . "w")) nil (font-lock-syntactic-keywords . haskell-font-lock-choose-syntactic-keywords) (font-lock-syntactic-face-function . haskell-syntactic-face-function) (parse-sexp-lookup-properties . t)) indent-tabs-mode tab-width 8 dabbrev-case-fold-search dabbrev-case-distinction dabbrev-case-replace dabbrev-abbrev-char-regexp "\\sw\\|[.]" add-hook before-save-hook haskell-mode-before-save-handler after-save-hook haskell-mode-after-save-handler haskell-mode-abbrev-table local-abbrev-table page-delimiter haskell-literate run-mode-hooks haskell-mode-hook] 6 (#$ . 10885) nil])
(defalias 'haskell-fill-paragraph #[(justify) "\212\306`\307!\210	A	@\306e\f\203\fV\203\306\306\310\311\217-\3128\211\313=\2039\314!\202w\250\203h\3158\212\316\317d\313$\210`)\306\214\320\\\320Z}\210\321!,\202wl\203p\313\202w\306\210\322!+\207" [pos syntax-ppss-last pt-min ppss old-pos old-ppss nil syntax-propertize (byte-code "\2036	Z\n\306HA\n\306H@T\245\307_W\2036\n\310H\n\310H@T\240\210\n\310H\n\310HA	Z\\\241\210\311	\312\211%\207\204z\203z\313!\206G\3078\211\203z\f	X\203z	\fZ
W\203z\n\314H\n\314H@T\240\210\n\314H\n\314HA	\fZ\\\241\210\311\f	\"\202<\312ee\312\203\250	\211 @@)W\203\250A\211\204\216\203\300\211 @@)\211 @A)\204\321!\204\321\315\316\317\320\211$\210\203\333\fW\203\345\f\202\n\321H\n\321H@T\240\210\n\321H\n\321HA	Z\\\241\210\204\322\323!\203\203\324\325!\210\203Y	b\210 \210`V\203Y`	W\203Y\326`\327\"\330>\204Y\n\306H\n\306H@T\240\210\n\306H\n\306HA	`Z\\\241\210`\312	Z
W\203\210\n\307H\n\307H@T\240\210\n\307H\n\307HA	Z\\\241\210\311	\312\211%\202;\n\331H\n\331H@T\240\210\n\331H\n\331HA	\fZ\\\241\210	\fZ
\307_V\203\334\311\f\211	\\\307\245\211\312\211%\fB\"\203\321\"AB\241\210\202\330\"B)\202\237\311\f	\312\211%	B\"\203\211 @@)	Z
V\203
\"AB\241\210\202:\"\240\210\202:\203*\211 @@)	Z
V\2034\"B\202:\"\240\210)-	B!\207" [old-pos pos syntax-ppss-stats old-ppss pt-min syntax-ppss-max-span 5 2 0 parse-partial-sexp nil syntax-ppss-toplevel-pos 1 add-hook before-change-functions syntax-ppss-flush-cache t 4 boundp font-lock-beginning-of-syntax-function make-local-variable syntax-begin-function get-text-property face (font-lock-string-face font-lock-doc-face font-lock-comment-face) 3 ppss syntax-ppss-cache ppss-best pt-best cache cache-pred x syntax-ppss-last pair] 7) ((args-out-of-range (byte-code "\301e\"\207" [pos parse-partial-sexp] 3))) 4 t fill-comment-paragraph 8 re-search-forward "-}" 2 fill-paragraph haskell-fill-paragraph syntax-values comment-num justify comment-start-point comment-end-point fill-paragraph-handle-comment] 6])
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [literate-haskell-mode-hook variable-documentation put purecopy "Hook run when entering LitHaskell mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp literate-haskell-mode-map definition-name literate-haskell-mode] 5)
(defvar literate-haskell-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [literate-haskell-mode-map variable-documentation put purecopy "Keymap for `literate-haskell-mode'." boundp literate-haskell-mode-syntax-table definition-name literate-haskell-mode] 5)
(defvar literate-haskell-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [literate-haskell-mode-syntax-table variable-documentation put purecopy "Syntax table for `literate-haskell-mode'." literate-haskell-mode-abbrev-table definition-name literate-haskell-mode] 5)
(defvar literate-haskell-mode-abbrev-table (progn (define-abbrev-table 'literate-haskell-mode-abbrev-table nil) literate-haskell-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [literate-haskell-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `literate-haskell-mode'." literate-haskell-mode derived-mode-parent haskell-mode] 5)
#@228 As `haskell-mode' but for literate scripts.

In addition to any hooks its parent mode might have run,
this mode runs the hook `literate-haskell-mode-hook', as the final step
during initialization.

\{literate-haskell-mode-map}
(defalias 'literate-haskell-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2036
\321 =\203<\322\f\323 \"\210)\324$\325\"\204V$%=\204V\326$\325%C#\210\327!\210\330\f!\210$%\212eb\210\331\332\333\307#\203r\334\202\200\331\335\333\307#\203~\336\202\200&)\211'\336=\203\220\306\337!\210\333\306\340!\210\341 )\342\343!\207" [delay-mode-hooks major-mode mode-name literate-haskell-mode-map literate-haskell-mode-syntax-table parent make-local-variable t haskell-mode literate-haskell-mode "LitHaskell" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table re-search-forward "^\\\\\\(begin\\|end\\){code}$" nil tex "^>" bird fill-paragraph-handle-comment mode-line-process ("/" (:eval (symbol-name haskell-literate))) run-mode-hooks literate-haskell-mode-hook literate-haskell-mode-abbrev-table local-abbrev-table haskell-literate-default haskell-literate] 6 (#$ . 18217) nil])
#@78 Name of the command to use to query Hoogle.
If nil, use the Hoogle web-site.
(custom-declare-variable 'haskell-hoogle-command '(if (executable-find "hoogle") "hoogle") '(#$ . 19588) :group 'haskell :type '(choice (const :tag "Use Web-site" nil) string))
#@31 Do a Hoogle search for QUERY.
(defalias 'haskell-hoogle #[(query) "\204\306\307\310	\"!\207\311\312!\211\313\314!\203\314 \202\315L\210r\316\nJ!q\210p\317 \210\f\320\211\321\211 \321!\"\322 \210\323\324!\210+\211#$r$q\210\325\326p	$\327\330\331\332\333D\332\nD\334FE%&\335&%\"+\336#!\210,\207" [haskell-hoogle-command query #1=#:--cl-temp-buffer-- default-directory #2=#:old-dir buffer-read-only browse-url format "http://haskell.org/hoogle/?q=%s" make-symbol "--temp-buffer--" fboundp help-buffer "*Help*" get-buffer-create kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook start-process "hoogle" lambda (&rest --cl-rest--) apply quote #[(#3=#:G46869 process event) "\301\302J\303\"\304\"\207" [#3# set-window-start get-buffer-window t 1] 4] --cl-rest-- set-process-sentinel internal-temp-output-buffer-show buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #4=#:buf standard-output scroll-to-top hoogle-process] 8 (#$ . 19848) (let ((def (haskell-ident-at-point))) (if (and def (symbolp def)) (setq def (symbol-name def))) (list (read-string (if def (format "Hoogle query (default %s): " def) "Hoogle query: ") nil nil def)))])
(defalias 'hoogle 'haskell-hoogle)
#@30 Do a Hayoo search for QUERY.
(defalias 'haskell-hayoo #[(query) "\301\302\303\"!\207" [query browse-url format "http://holumbus.fh-wedel.de/hayoo/hayoo.html?query=%s"] 4 (#$ . 21102) (let ((def (haskell-ident-at-point))) (if (and def (symbolp def)) (setq def (symbol-name def))) (list (read-string (if def (format "Hayoo query (default %s): " def) "Hayoo query: ") nil nil def)))])
(defalias 'hayoo 'haskell-hayoo)
#@40 *Command used to check a Haskell file.
(custom-declare-variable 'haskell-check-command '"hlint" '(#$ . -21524) :group 'haskell :type '(choice (const "hlint") (const "ghc -fno-code") (string :tag "Other command")))
#@61 Whether to run stylish-haskell on the buffer before saving.
(custom-declare-variable 'haskell-stylish-on-save 'nil '(#$ . 21744) :group 'haskell :type 'boolean)
#@42 Generate tags via hasktags after saving.
(custom-declare-variable 'haskell-tags-on-save 'nil '(#$ . 21911) :group 'haskell :type 'boolean)
#@15 Internal use.
(defvar haskell-saved-check-command nil (#$ . 22056))
#@151 Check a Haskell file (default current buffer's file).
Runs COMMAND, a shell command, as if by `compile'.
See `haskell-check-command' for the default.
(defalias 'haskell-check #[(command) "\303\n?\304\"\210\305!\207" [command haskell-saved-check-command compilation-ask-about-save save-some-buffers nil compilation-start] 3 (#$ . 22131) (list (read-string "Checker command: " (or haskell-saved-check-command (concat haskell-check-command " " (let ((name (buffer-file-name))) (if name (file-name-nondirectory name)))))))])
#@91 Flymake init function for Haskell.
To be added to `flymake-init-create-temp-buffer-copy'.
(defalias 'haskell-flymake-init #[nil "\205\302!\211@\303	A\304\305!C\")D\207" [haskell-saved-check-command checker-elts split-string append flymake-init-create-temp-buffer-copy flymake-create-temp-inplace] 6 (#$ . 22661)])
(add-to-list 'flymake-allowed-file-name-masks '("\\.l?hs\\'" haskell-flymake-init))
#@143 Ran when the user tries to indent in the buffer but no indentation mode has been selected.
Brings up the documentation for haskell-mode-hook.
(defalias 'haskell-mode-suggest-indent-choice #[nil "\300\301!\207" [describe-variable haskell-mode-hook] 2 (#$ . 23071)])
#@88 Function to unindent the current line.
This function will be called with no arguments.
(defvar unindent-line-function nil (#$ . 23342))
#@83 Un-indent the current line according to the mode's unindenting function (if any).
(defalias 'unindent-for-tab-command #[nil "\205 \207" [unindent-line-function] 1 (#$ . 23484) nil])
#@50 Format the imports by aligning and sorting them.
(defalias 'haskell-mode-format-imports #[nil "i\301 \210\302 \210\303 \\b)\207" [col haskell-sort-imports haskell-align-imports line-beginning-position] 2 (#$ . 23676) nil])
#@69 Message only one line, multiple lines just disturbs the programmer.
(defalias 'haskell-mode-message-line #[(str) "\303\304\305#\211@\2058	@;\2058\306\307	@	A\2035	\211A@);\2035\310\311\312\313	\211A@)!\314\"\"\2026\315P\")\207" [str lines x split-string "\n" t message "%s" format " [ %s .. ]" haskell-string-take haskell-trim 10 ""] 9 (#$ . 23907)])
#@50 Contextually do clever stuff when hitting space.
(defalias 'haskell-mode-contextual-space #[nil "\302 \204	\303\304!\207\212\305v\210\306\307!)\203$\310c\210\311\312\313 \"\211c\210\314 )\207\212\305u\210\315 )\316\230\204@\212\305u\210\315 )\310c\210\317	!)\207\310c\207" [module ident haskell-session-maybe self-insert-command 1 -1 looking-at "^import$" " " ido-completing-read "Module: " haskell-session-all-modules haskell-mode-format-imports haskell-ident-at-point "" haskell-process-do-try-info] 4 (#$ . 24273) nil])
#@54 Function that will be called before buffer's saving.
(defalias 'haskell-mode-before-save-handler #[nil "\300\207" ["Function that will be called before buffer's saving."] 1 (#$ . 24807)])
#@53 Function that will be called after buffer's saving.
(defalias 'haskell-mode-after-save-handler #[nil "\203	\304\305\306\217\210	\203\304\307\310\217\210\304\211\311 *\207" [haskell-tags-on-save haskell-stylish-on-save after-save-hook before-save-hook nil (byte-code "\301\300!\203
\203
\302 \210\301\207" [haskell-session boundp haskell-process-generate-tags] 2) ((error)) (haskell-mode-stylish-buffer) ((error)) basic-save-buffer] 3 (#$ . 25001)])
#@145 Execute shell command CMD with current buffer as input and
replace the whole buffer with the output. If CMD fails the buffer
remains unchanged.
(defalias 'haskell-mode-buffer-apply-command #[(cmd) "\306\307!\210\310\311\312p!\313\314\315#\316\f!\316\f!#\317\320!\203-\203-\321!\202/$$
\322\323\324!!%&\325\216r%q\210\326\np#D\327$)r%q\210\330\327\211&\327\331%\210,'\332\333!(r(q\210\334\216\335#!\210\336ed\"!+)\332\333!*r*q\210\337\216\335
!\210\336ed\"++)\315\230\203\263+\315\230\203\244	\340\"\210\202\272\214~\210\335
\327\211\211\307%\210)\202\272	\341)#\210\342
!\210\342#!.\n\207" [chomp errout filename cmd cmd-prefix tmp-file set-buffer-modified-p t #[(str) "\301\302\"\203\303\304\305\211$\202\207" [str string-match "\\`\n+\\|^\\s-+\\|\\s-+$\\|\n+\\'" replace-match #1="" t] 5] #[(fmt &rest args) "\304\305	\306\307\n#\310#)\207" [warning-fill-prefix cmd fmt args "    " display-warning apply format :warning] 6] buffer-file-name replace-regexp-in-string " .*" #1# make-temp-file boundp haskell-session haskell-session-cabal-dir get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n\302!\210\301\207" [#2=#:temp-buffer buffer-name kill-buffer] 2)) call-process nil write-region 0 generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#3=#:temp-buffer buffer-name kill-buffer] 2)) insert-file-contents buffer-substring-no-properties ((byte-code "\301!\203\n\302!\210\301\207" [#4=#:temp-buffer buffer-name kill-buffer] 2)) "Error: %s produced no output, leaving buffer alone" "%s failed: %s" delete-file err-file default-directory #2# #5=#:temp-file errcode #3# stderr-output #4# stdout-output] 7 (#$ . 25466)])
#@46 Apply stylish-haskell to the current buffer.
(defalias 'haskell-mode-stylish-buffer #[nil "i\302 \303\304!\210eb\210Sy\210	`\\b*\207" [line column line-number-at-pos haskell-mode-buffer-apply-command "stylish-haskell"] 2 (#$ . 27206) nil])
#@61 The tag find function, specific for the particular session.
(defalias 'haskell-mode-tag-find #[(&optional next-p) "\304\305 !\306\307 \310!\311\230?\205#\312\n!\203 \313\"\202#\314!+\207" [ident tags-revert-without-query tags-file-name next-p haskell-session-tags-filename haskell-session t haskell-ident-at-point haskell-trim "" file-exists-p find-tag haskell-process-generate-tags] 3 (#$ . 27455) "P"])
#@36 Insert an SCC annotation at point.
(defalias 'haskell-mode-insert-scc-at-point #[nil "\301\302!\204n\204A\212\303u\210\301\304!)\203A\301\305!n\204(\212\303u\210\301\305!)\204+\306c\210\307c\210\2045\306c\210\203=\310\202>\311u)\207\312\313!\207" [space-at-point looking-at "\\b\\|[ 	]\\|$" -1 "\\b\\|[ 	]" "[ 	]" " " "{-# SCC \"\" #-}" -5 -6 error "Not over an area of whitespace"] 2 (#$ . 27876) nil])
#@35 Kill the SCC annotation at point.
(defalias 'haskell-mode-kill-scc-at-point #[nil "\212`\302\303!\204n\204\304u\210\202\303!\2032\305\224	X\2032\305\225	V\2032\306\307\224\307\225\"\2025\310\311!+\207" [scc old-point "\\({-#[ 	]*SCC \"[^\"]*\"[ 	]*#-}\\)[ 	]*" looking-at -1 1 kill-region 0 error "No SCC at point"] 3 (#$ . 28298) nil])
(provide 'haskell-mode)
