;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-indentation.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\303\304\305\306\307\310\311\312\313\314&	\207" [require syntax cl custom-declare-group haskell-indentation nil "Haskell indentation." :link (custom-manual "(haskell-mode)Indentation") :group haskell :prefix "haskell-indentation-"] 10)
#@82 Warn before moving to the leftmost indentation, if you tab at the rightmost one.
(custom-declare-variable 'haskell-indentation-cycle-warn 't '(#$ . 818) :type 'boolean :group 'haskell-indentation)
#@38 Delete backward removes indentation.
(custom-declare-variable 'haskell-indentation-delete-backward-indentation 't '(#$ . 1021) :type 'boolean :group 'haskell-indentation)
#@29 Delete removes indentation.
(custom-declare-variable 'haskell-indentation-delete-indentation 't '(#$ . 1198) :type 'boolean :group 'haskell-indentation)
#@71 Extra indentation to add before expressions in a haskell layout list.
(custom-declare-variable 'haskell-indentation-layout-offset '2 '(#$ . 1357) :type 'integer :group 'haskell-indentation)
#@56 Extra indentation after an opening keyword (e.g. let).
(custom-declare-variable 'haskell-indentation-starter-offset '1 '(#$ . 1553) :type 'integer :group 'haskell-indentation)
#@69 Extra indentation after an indentation to the left (e.g. after do).
(custom-declare-variable 'haskell-indentation-left-offset '2 '(#$ . 1735) :type 'integer :group 'haskell-indentation)
#@61 Extra indentation after the keywords `if' `then' or `else'.
(custom-declare-variable 'haskell-indentation-ifte-offset '2 '(#$ . 1927) :type 'integer :group 'haskell-indentation)
#@47 Extra indentation before the keyword `where'.
(custom-declare-variable 'haskell-indentation-where-pre-offset '2 '(#$ . 2111) :type 'integer :group 'haskell-indentation)
#@46 Extra indentation after the keyword `where'.
(custom-declare-variable 'haskell-indentation-where-post-offset '2 '(#$ . 2286) :type 'integer :group 'haskell-indentation)
#@56 Append a space after every birdtrack in literate mode.
(custom-declare-variable 'haskell-indentation-birdtrack-extra-space 't '(#$ . 2461) :type 'boolean :group 'haskell-indentation)
(defconst haskell-indentation-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210)\207" [keymap make-sparse-keymap define-key [13] haskell-newline-and-indent [backspace] haskell-indentation-delete-backward-char [4] haskell-indentation-delete-char] 4))
#@117 Non-nil if Haskell-Indentation mode is enabled.
Use the command `haskell-indentation-mode' to change this variable.
(defvar haskell-indentation-mode nil (#$ . 2934))
(make-variable-buffer-local 'haskell-indentation-mode)
#@193 Haskell indentation mode that deals with the layout rule.
It rebinds RET, DEL and BACKSPACE, so that indentations can be
set and deleted as if they were real tabs.  It supports
autofill-mode.
(defalias 'haskell-indentation-mode #[(&optional arg) "\306 	\307=\203\n?\202\310	!\311V\312\304!\210\312\305!\210\n\2037\313]\314\304!\210\315\314\305!\210\316\314\317!\210\320\321\322\n\203A\323\202B\324\"\210\325\326!\203c\306 \203V\306 \232\203c\327\330\n\203`\331\202a\332\"\210)\333 \210\n\207" [#1=#:last-message arg haskell-indentation-mode max-lisp-eval-depth indent-line-function normal-auto-fill-function current-message toggle prefix-numeric-value 0 kill-local-variable 600 make-local-variable haskell-indentation-indent-line haskell-indentation-auto-fill-function haskell-indent-last-position nil run-hooks haskell-indentation-mode-hook haskell-indentation-mode-on-hook haskell-indentation-mode-off-hook called-interactively-p any message "Haskell-Indentation mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 3162) (list (or current-prefix-arg 'toggle))])
(byte-code "\301\302\303\304\211%\207" [haskell-indentation-mode-map add-minor-mode haskell-indentation-mode " Ind" nil] 6)
#@45 Turn on the haskell-indentation minor mode.
(defalias 'turn-on-haskell-indentation #[nil "\300\301!\207" [haskell-indentation-mode t] 2 (#$ . 4383) nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put parse-error error-conditions (error parse-error) error-message "Parse error"] 4)
(defalias 'parse-error #[(&rest args) "\301\302\303\304\"\"\207" [args signal parse-error apply format] 5])
(defalias 'on-parse-error '(macro . #[(except &rest body) "\302\303\304B\305	\306BBF\207" [body except condition-case parse-error-string progn parse-error ((message "%s" (cdr parse-error-string)))] 6]))
#@93 Compute current column according to haskell syntax rules,
  correctly ignoring composition.
(defalias 'haskell-current-column #[nil "\212`\302\303 \210`	W\203(\304f\305U\203\306\245T\306_\202\"T\304u\210\202+\207" [cc start 0 beginning-of-line nil 9 8] 2 (#$ . 4998)])
#@83 `kill-line' for indented text.
Preserves indentation and removes extra whitespace
(defalias 'kill-indented-line #[(&optional arg) "\303 `\n\247\203\n\304W\204!\305\306!\204'\n\247\203!\307\n!\203'\310\n!\202g\311\312x\203Wn\203W\212\ny\210\305\306!)\204W\313`\212\ny\210`)\"\210\311\312w\210\303 	V\205g\314	!\202gb\210\313`\212\ny\210\311\312w\210`)\"*\207" [old-point col arg haskell-current-column 0 looking-at "[ 	]*$" zerop kill-line " 	" nil kill-region move-to-column] 4 (#$ . 5286) "P"])
(defalias 'haskell-indentation-auto-fill-function #[nil "\304 V\2053\304 V\203\305\306!\210\305\307!\210\202\310\311\312 !@\313 \210\314=\203-\315c\210	j\210\310*\207" [fill-column indent auto-fill-function haskell-literate haskell-current-column skip-syntax-backward "-" "^-" nil last haskell-indentation-find-indentations newline bird ">"] 3])
(defalias 'haskell-indentation-reindent #[(col) "\302 \210`\303=\203\304f\305=\203\304u\210\306\307!\210`|\210\303=\203$\310c\210	j\207" [haskell-literate col beginning-of-line bird nil 62 skip-syntax-forward "-" ">"] 3])
(defalias 'haskell-indentation-current-indentation #[nil "\301=\203\212\302 \210\303u\210\304\305!\210i)\207\306 \207" [haskell-literate bird beginning-of-line nil skip-syntax-forward "-" current-indentation] 2])
(defalias 'haskell-indentation-outside-bird-line #[nil "\301=\205i\302W\206\212\303 \210\304f)\305=?\207" [haskell-literate bird 2 beginning-of-line nil 62] 2])
(defalias 'haskell-newline-and-indent #[nil "\300 \203\301 \210\302 \207\303\304\305\217\207" [haskell-indentation-outside-bird-line delete-horizontal-space newline parse-error-string (byte-code "\305 \306 \307 \310\311!\210l\205\305 	U?\312 \210\313=\204%\314 \210\2022\f\203,\315j\210\314 \210\316c\210\203B\317\320\n!\321	\n\"]!\202H\317\321\n\"!+\207" [cc ci indentations haskell-literate haskell-indentation-birdtrack-extra-space haskell-current-column haskell-indentation-current-indentation haskell-indentation-find-indentations skip-syntax-forward "-" delete-horizontal-space bird newline 2 "> " haskell-indentation-reindent haskell-indentation-butlast haskell-indentation-matching-indentation] 5) ((parse-error (byte-code "\301 \210\302\303A\"\207" [parse-error-string newline message "%s"] 3)))] 3 nil nil])
(defalias 'haskell-indentation-one-indentation #[(col indentations) "\303!\204\f\n\202#A\204@\202#\n	@X\203!\n\202#	@)\207" [indentations last-pair col last] 2])
(defalias 'haskell-indentation-butlast #[(indentations) "A:\203\211AA)\203A\211\202@\207" [indentations x] 2])
#@57 Find the lefmost indentation which is greater than COL.
(defalias 'haskell-indentation-next-indentation #[(col indentations) "\300\301\215\207" [return (byte-code "\203 	@W\204A\204\302\303@\"\210\202A\211\204	\207" [indentations col throw return] 4)] 2 (#$ . 7902)])
#@56 Find the rightmost indentation which is less than COL.
(defalias 'haskell-indentation-previous-indentation #[(col indentations) "\205	@V\205\302\303\215\207" [indentations col return (byte-code "\203$A\203	\211A@)X\203\303\304@\"\210\202A\211\204	\207" [indentations col x throw return] 4)] 2 (#$ . 8191)])
#@70 Find the leftmost indentation which is greater than or equal to COL.
(defalias 'haskell-indentation-matching-indentation #[(col indentations) "\300\301\215\207" [return (byte-code "\203 	@X\204A\204\302\303@\"\210\202A\211\204	\207" [indentations col throw return] 4)] 2 (#$ . 8526)])
(defalias 'haskell-indentation-indent-line #[nil "\212\306 \210\307\310`\311!\210	A	@\310e\f\203#\fV\203#\310\310\312\313\217-8)?\205\253\314 \315 \315 V\203Q\212\316!\210\317\320\321 \"!\210)\202s\315 U\203e\317\322\321 \"!\210\202s\316!\210\317\323\321 \"!\210\315 U\204\202\310\211\202\252\204\221\317\322\324\321 \"!\202\252`\232\204\243\325\326!\210`\211\202\252\317\322\324\321 \"!*\207" [pos syntax-ppss-last pt-min ppss old-pos old-ppss beginning-of-line 8 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))) haskell-indentation-current-indentation haskell-current-column move-to-column haskell-indentation-reindent haskell-indentation-one-indentation haskell-indentation-find-indentations haskell-indentation-next-indentation haskell-indentation-matching-indentation -1 message "Press TAB again to go to the leftmost indentation" start-column ci haskell-indent-last-position haskell-indentation-cycle-warn] 5])
(defalias 'haskell-indentation-delete-backward-char #[(n) "\300\301\302\217\207" [parse-error-string (byte-code "\306 \203\n\307[!\207	\203\n\203`\310 U\204\310 `|\207\311 \312U\204[\311 \313 V\204[\314\315`\316!\210\fA\f@\315e\203RV\203R\315\315\317\320\217-8\203`\307[!\207\203\227\313 \321\322 \"\212\203\207\323!\210`\323!\210`|\202\225\324 \210e`S]\323!\210`|+\207\307[!\207" [n delete-selection-mode mark-active pos syntax-ppss-last pt-min haskell-indentation-outside-bird-line delete-char mark haskell-current-column 0 haskell-indentation-current-indentation 8 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))) haskell-indentation-previous-indentation haskell-indentation-find-indentations move-to-column beginning-of-line ppss old-pos old-ppss haskell-indentation-delete-backward-indentation ci pi] 5) ((parse-error (byte-code "\302[!\210\303\304	A\"\207" [n parse-error-string delete-char message "%s"] 3)))] 3 nil "p"])
(defalias 'haskell-indentation-delete-char #[(n) "\301 \203	\302!\207\303\304\305\217\207" [n haskell-indentation-outside-bird-line delete-char parse-error-string (byte-code "\203	\203`\306 U\204\306 `|\207\n\307=\203&\310\311!\203&\312\313\\!\207l\204a\314 \315 Y\204a\316\317`\320\f!\210
A
@\317e\203X\fV\203X\317\317\321\322\217-8\203e\312!\207\203\223\315 \323\324 \"\212\203\211\314 V\203\211\325!\210`\325!\210`|+\207\312[!\207" [delete-selection-mode mark-active haskell-literate n pos syntax-ppss-last mark bird looking-at "\n> " delete-char 2 haskell-current-column haskell-indentation-current-indentation 8 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))) haskell-indentation-previous-indentation haskell-indentation-find-indentations move-to-column pt-min ppss old-pos old-ppss haskell-indentation-delete-indentation ci pi] 5) ((parse-error (byte-code "\302!\210\303\304	A\"\207" [n parse-error-string delete-char message "%s"] 3)))] 3 nil "p"])
(defalias 'haskell-indentation-goto-least-indentation #[nil "\301 \210\302=\203
\303\304\215\207\303\305\215\210\301 \210o\205\306\307 !\207" [haskell-literate beginning-of-line bird return (byte-code "\306f\307=\204\306y\210\310u\210\311\312\306\"\210\313\306`\314!\210	A	@\306e\f\2031\fV\2031\306\306\315\316\217-8\211\203Db\210\317 \210)\310\320 Y\203Z\321\322!\204Z\310u\210\311\312\306\"\210o\203f\310u\210\311\312\306\"\210\323y\210\202" [pos syntax-ppss-last pt-min ppss old-pos old-ppss nil 62 2 throw return 8 syntax-propertize #1=(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) #2=((args-out-of-range (byte-code "\301e\"\207" [pos parse-partial-sexp] 3))) beginning-of-line haskell-indentation-current-indentation looking-at ">\\s-*$" -1 ps] 6) (byte-code "o\204L\306\307 [!\210\310 \210\311\312`\313!\210	A	@\312e\f\203,\fV\203,\312\312\314\315\217-8\211\203<b\210)\316 \317U\203\320\321\312\"\210\202\312\207" [pos syntax-ppss-last pt-min ppss old-pos old-ppss forward-comment buffer-size beginning-of-line 8 nil syntax-propertize #1# #2# haskell-indentation-current-indentation 0 throw return ps] 6) forward-comment buffer-size] 2])
(defalias 'haskell-indentation-parse-to-indentations #[nil "\212\306\307!\210`\310\211\211\211\311\211\211\211\312 \210`X\203-\313 \2025\314 \315\316\215\210	.\207" [haskell-indentation-layout-offset possible-indentations following-token current-token case-fold-search left-indent skip-syntax-forward "-" 0 nil haskell-indentation-goto-least-indentation haskell-indentation-first-indentation haskell-indentation-peek-token parse-end (byte-code "\301 \210\302=\204\303\304\"\210\301\207" [current-token haskell-indentation-toplevel end-tokens parse-error "Illegal token: %s"] 3) starter-indent current-indent parse-line-number layout-indent indentation-point] 10])
(defalias 'haskell-indentation-first-indentation #[nil "\301=\203\302\207\303\207" [haskell-literate bird (2) (0)] 2])
(defalias 'haskell-indentation-find-indentations #[nil "\306`\307!\210	A	@\306e\f\203\fV\203\306\306\310\311\217-\3128\203/\313 \202~\3148\203|\212\315\316!\205nl\205n\317y\320V?\205n\314\306`\307!\210	A	@\306e\f\203g\fV\203g\306\306\310\311\217-8?)\203w\321 \202~\313 \202~\321 )\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))) 3 haskell-indentation-first-indentation 4 skip-syntax-forward "-" 1 0 haskell-indentation-parse-to-indentations] 5])
#@81 Translation dictionary from UnicodeSyntax tokens to their ASCII representation.
(defconst haskell-indentation-unicode-tokens '(("‚Üí" . "->") ("‚à∑" . "::") ("‚Üê" . "<-") ("‚áí" . "=>") ("‚àÄ" . "forall") ("‚Ü¢" . "-<") ("‚Ü£" . ">-") ("‚§õ" . "-<<") ("‚§ú" . ">>-") ("‚òÖ" . "*")) (#$ . 22366))
(defconst haskell-indentation-toplevel-list '(("module" . haskell-indentation-module) ("data" lambda nil (haskell-indentation-statement-right #'haskell-indentation-data)) ("type" lambda nil (haskell-indentation-statement-right #'haskell-indentation-data)) ("newtype" lambda nil (haskell-indentation-statement-right #'haskell-indentation-data)) ("class" . haskell-indentation-class-declaration) ("instance" . haskell-indentation-class-declaration)))
(defconst haskell-indentation-type-list '(("::" lambda nil (haskell-indentation-with-starter (lambda nil (haskell-indentation-separated #'haskell-indentation-type "->" nil)) nil)) ("(" lambda nil (haskell-indentation-list #'haskell-indentation-type ")" "," nil)) ("[" lambda nil (haskell-indentation-list #'haskell-indentation-type "]" "," nil)) ("{" lambda nil (haskell-indentation-list #'haskell-indentation-type "}" "," nil))))
(defconst haskell-indentation-expression-list '(("data" . haskell-indentation-data) ("type" . haskell-indentation-data) ("newtype" . haskell-indentation-data) ("if" lambda nil (haskell-indentation-phrase '(haskell-indentation-expression "then" haskell-indentation-expression "else" haskell-indentation-expression))) ("let" lambda nil (haskell-indentation-phrase '(haskell-indentation-declaration-layout "in" haskell-indentation-expression))) ("do" lambda nil (haskell-indentation-with-starter #'haskell-indentation-expression-layout nil)) ("mdo" lambda nil (haskell-indentation-with-starter #'haskell-indentation-expression-layout nil)) ("rec" lambda nil (haskell-indentation-with-starter #'haskell-indentation-expression-layout nil)) ("case" lambda nil (haskell-indentation-phrase '(haskell-indentation-expression "of" haskell-indentation-case-layout))) ("\\" lambda nil (haskell-indentation-phrase '(haskell-indentation-expression "->" haskell-indentation-expression))) ("proc" lambda nil (haskell-indentation-phrase '(haskell-indentation-expression "->" haskell-indentation-expression))) ("where" lambda nil (haskell-indentation-with-starter #'haskell-indentation-declaration-layout nil t)) ("::" lambda nil (haskell-indentation-with-starter (lambda nil (haskell-indentation-separated #'haskell-indentation-type "->" nil)) nil)) ("=" lambda nil (haskell-indentation-statement-right #'haskell-indentation-expression)) ("<-" lambda nil (haskell-indentation-statement-right #'haskell-indentation-expression)) ("(" lambda nil (haskell-indentation-list #'haskell-indentation-expression ")" '(list "," "->") nil)) ("[" lambda nil (haskell-indentation-list #'haskell-indentation-expression "]" "," "|")) ("{" lambda nil (haskell-indentation-list #'haskell-indentation-expression "}" "," nil))))
(defalias 'haskell-indentation-expression-layout #[nil "\300\301!\207" [haskell-indentation-layout haskell-indentation-expression] 2])
(defalias 'haskell-indentation-declaration-layout #[nil "\300\301!\207" [haskell-indentation-layout haskell-indentation-declaration] 2])
(defalias 'haskell-indentation-case-layout #[nil "\300\301!\207" [haskell-indentation-layout haskell-indentation-case] 2])
(defalias 'haskell-indentation-fundep #[nil "\300\301\302\"\207" [haskell-indentation-with-starter #[nil "\300\301\302\303#\207" [haskell-indentation-separated haskell-indentation-fundep1 "," nil] 4] nil] 3])
(defalias 'haskell-indentation-fundep1 #[nil "\303 	\304\235\203\305 \210\202	\306=\205\n\307\235\205\310!)\207" [current-indent current-token following-token haskell-current-column (value "->") haskell-indentation-read-next-token end-tokens (value "->") haskell-indentation-add-indentation] 2])
(defalias 'haskell-indentation-toplevel #[nil "\300\301!\207" [haskell-indentation-layout #[nil "\303	\"\211\203\nA \202\304 )\207" [current-token haskell-indentation-toplevel-list parser assoc haskell-indentation-declaration] 4]] 2])
(defalias 'haskell-indentation-type #[nil "\301 \302\303\215)\207" [current-indent haskell-current-column return (byte-code "\305\235\203\f\306 \210\202\307=\203$	\310\235\203\311\n!\210\312\313\314\"\210\202\315\"\211\2045\312\313\314\"\210\2029\fA \210)\202" [current-token following-token current-indent haskell-indentation-type-list parser (value operator "->") haskell-indentation-read-next-token end-tokens (value operator no-following-token "->" "(" "[" "{" "::") haskell-indentation-add-indentation throw return nil assoc] 4)] 2])
(defalias 'haskell-indentation-data #[nil "\300\301\302\"\207" [haskell-indentation-with-starter #[nil "\301\230\203	\302 \210\303 \210\304\230\203\305\306\307\"\207\310\230\205!\305\311\307\"\207" [current-token "instance" haskell-indentation-read-next-token haskell-indentation-type "=" haskell-indentation-with-starter #[nil "\300\301\302\303#\207" [haskell-indentation-separated haskell-indentation-type "|" "deriving"] 4] nil "where" haskell-indentation-expression-layout] 3] nil] 3])
(defalias 'haskell-indentation-class-declaration #[nil "\300\301\302\"\207" [haskell-indentation-with-starter #[nil "\301 \210\302\230\203\f\303 \210\304\230\205\305\306\307\"\207" [current-token haskell-indentation-type "|" haskell-indentation-fundep "where" haskell-indentation-with-starter haskell-indentation-expression-layout nil] 3] nil] 3])
(defalias 'haskell-indentation-module #[nil "\300\301\302\"\207" [haskell-indentation-with-starter #[nil "\302 \303 \210	\304\230\203\305\306\307\310\311$\210	\312=\203\"\313!\210\314\315\311\"\210	\316\230\205<\303 \210	\312=\2039\317 \210\314\315\311\"\210\320\321!)\207" [current-indent current-token haskell-current-column haskell-indentation-read-next-token "(" haskell-indentation-list haskell-indentation-module-export ")" "," nil end-tokens haskell-indentation-add-indentation throw parse-end "where" haskell-indentation-add-layout-indent haskell-indentation-layout haskell-indentation-toplevel] 5] nil] 3])
(defalias 'haskell-indentation-module-export #[nil "\302\230\203\"\303 \304 \210\305=\203\306	!\202 \307=\205 \304 )\207\310 \207" [current-token current-indent "module" haskell-current-column haskell-indentation-read-next-token end-tokens haskell-indentation-add-indentation value haskell-indentation-type] 2])
(defalias 'haskell-indentation-list #[(parser end sep stmt-sep) "\304\305\306\307\310D	\nFE\"\207" [parser sep stmt-sep end haskell-indentation-with-starter lambda nil haskell-indentation-separated function] 7])
(defalias 'haskell-indentation-with-starter #[(parser end &optional where-expr\?) "\306 \306 \307 U\203\306 \202	\310 \210\311=\203B\f
\232\203*\312\n!\210\202=\2036\313	!\210\202=\312	\\!\210\314\315\316\"\210\306 \n^
\203U\\\202V	 \210\311=\203w\f
\232\203l\312!\210
\205\212\314\315\316\"\202\212
\232\203\202\310 \202\212
\205\212\317\320\".\207" [current-indent left-indent starter-column current-token following-token end haskell-current-column haskell-indentation-current-indentation haskell-indentation-read-next-token end-tokens haskell-indentation-add-indentation haskell-indentation-add-where-post-indent throw parse-end nil parse-error "Illegal token: %s" where-expr\? haskell-indentation-left-offset starter-indent haskell-indentation-starter-offset parser] 4])
(defalias 'haskell-indentation-case #[nil "\302 \210\303=\203
\304	!\207\305\230\203\306\307\310\"\207\311\230\205!\312\302!\207" [current-token current-indent haskell-indentation-expression end-tokens haskell-indentation-add-indentation "|" haskell-indentation-with-starter #[nil "\300\301\302\303#\207" [haskell-indentation-separated haskell-indentation-case "|" nil] 4] nil "->" haskell-indentation-statement-right] 3])
(defalias 'haskell-indentation-statement-right #[(parser) "\305 \210\306=\203\307	\n\\!\210\310\311\312\"\210\313 \f )\207" [current-token left-indent haskell-indentation-left-offset current-indent parser haskell-indentation-read-next-token end-tokens haskell-indentation-add-indentation throw parse-end nil haskell-current-column] 3])
(defalias 'haskell-indentation-simple-declaration #[nil "\303 \210\304\230\203
\305\303!\207\306\230\203\305\307!\207\310=\205+	\304\230\205+\311\n!\210\312\313\314\"\207" [current-token following-token current-indent haskell-indentation-expression "=" haskell-indentation-statement-right "::" haskell-indentation-type end-tokens haskell-indentation-add-indentation throw parse-end nil] 3])
(defalias 'haskell-indentation-declaration #[nil "\303 \210\304\230\203\305\306\307\"\207\310=\205\"	\311\235\205\"\312\n!\210\313\314\307\"\207" [current-token following-token current-indent haskell-indentation-expression "|" haskell-indentation-with-starter #[nil "\300\301\302\303#\207" [haskell-indentation-separated haskell-indentation-expression "," "|"] 4] nil end-tokens ("|" "=" "::" ",") haskell-indentation-add-indentation throw parse-end] 3])
(defalias 'haskell-indentation-layout #[(parser) "\302\230\203
\303	\304\305\306$\207\307	!\207" [current-token parser "{" haskell-indentation-list "}" ";" nil haskell-indentation-implicit-layout-list] 5])
(defalias 'haskell-indentation-expression-token #[(token) "\301\235\207" [token ("if" "let" "do" "case" "\\" "(" "[" "::" value operator no-following-token)] 2])
(defalias 'haskell-indentation-expression #[nil "\301 \302\303\215)\207" [current-indent haskell-current-column return (byte-code "\306>\203\f\307 \210\202\310=\2030	\311\230\203\312 \210\202(\313	!\203(\314\n!\210\315\316\317\"\210\202\320\"\211\204>\315\316\317\"\210\fA \210\310=\203c\f@\321\230\203c
\nU\203c\313	!\203c\322 \210\315\323\317\"\210\f@\324\235\204o\315\316\317\"\210)\202" [current-token following-token current-indent haskell-indentation-expression-list parser haskell-indentation-layout-offset (value operator) haskell-indentation-read-next-token end-tokens "where" haskell-indentation-add-where-pre-indent haskell-indentation-expression-token haskell-indentation-add-indentation throw return nil assoc "let" haskell-indentation-add-layout-indent parse-end ("(" "[" "{" "do" "case")] 4)] 2])
(defalias 'haskell-indentation-test-indentations #[nil "\212\303 )\304\305\211\203*\n@Y\203#	\306\n@Z\307\"\310Q\n@T\nA\211\204
\311\210\312 \210	c+\207" [pos str indentations haskell-indentation-find-indentations "" 0 make-string 32 "|" nil newline] 5 nil nil])
(defalias 'haskell-indentation-separated #[(parser separator stmt-separator) "\300\301\215\207" [return (byte-code " \210	<\203\n	\235\202\n	\232\203\306 \210\202\n\232\203)\307 \306 \210\202\n\310=\203L
	\232\204;
\232\203D\311\f!\210\312\313\314\"\210\312\315\314\"\210\202\312\315\314\"\210\202" [parser separator current-token stmt-separator starter-indent following-token haskell-indentation-at-separator haskell-current-column end-tokens haskell-indentation-add-indentation throw parse-end nil return] 3)] 2])
(defalias 'haskell-indentation-at-separator #[nil "\304 \305 U\205\n\304 \306 \210	\307=\203\310\n!\210\311\312\313\"\202)\205)\304 \211)\207" [separator-column current-token current-indent starter-indent haskell-current-column haskell-indentation-current-indentation haskell-indentation-read-next-token end-tokens haskell-indentation-add-indentation throw return nil] 3])
(defalias 'haskell-indentation-implicit-layout-list #[(parser) "\304 \304 \304 \305\306\215\210+\307=\205\310 \207" [layout-indent current-indent left-indent current-token haskell-current-column return (byte-code "	 \210)\n\304\235\203\305 \210\202\n\306=\203/\307!\204$\310\230\203'\311 \210\312\313\314\"\210\202\312\313\314\"\210\202" [left-indent parser current-token following-token (layout-next ";") haskell-indentation-read-next-token end-tokens haskell-indentation-expression-token ";" haskell-indentation-add-layout-indent throw return nil] 3) layout-end haskell-indentation-read-next-token] 2])
(defalias 'haskell-indentation-phrase #[(phrase) "\301\302\303\304\305DDE\303\"\207" [phrase haskell-indentation-with-starter lambda nil haskell-indentation-phrase-rest quote] 6])
(defalias 'haskell-indentation-phrase-rest #[(phrase) "\306 @ \210)\f\307=\203SA?\206\353
\211A@)\232\203.\310!\210\311\312\313\"\202\353\211A@)\314\230\203LU\205\353\315 \210\311\312\313\"\202\353\311\312\313\"\202\353A?\206\353\211A@)\f\232\203\325\306 \316 U	Z\211\317X\203|\202~\320 \210\f\307=\203\310\310\211A@)\321\235\203\236\\\202\301\211A@)\322\235\203\274\203\267\\\202\301\202\301\\!\210\311\312\313\"\210\323\211AA)!+\202\353\211A@)\314\230\206\353\324\325\211A@)\")\207" [parse-line-number starter-line current-indent phrase current-token following-token haskell-current-column end-tokens haskell-indentation-add-indentation throw parse-end nil "in" haskell-indentation-add-layout-indent haskell-indentation-current-indentation 0 haskell-indentation-read-next-token ("then" "else") ("in" "->") haskell-indentation-phrase-rest parse-error "Expecting %s" x starter-indent left-indent layout-indent on-new-line lines-between haskell-indentation-ifte-offset haskell-indentation-starter-offset haskell-indentation-left-offset] 4])
(defalias 'haskell-indentation-add-indentation #[(indent) "\303	X\203
	\n\\\202!\207" [indent layout-indent haskell-indentation-layout-offset haskell-indentation-push-indentation] 3])
(defalias 'haskell-indentation-add-layout-indent #[nil "\301!\207" [layout-indent haskell-indentation-push-indentation] 2])
(defalias 'haskell-indentation-add-where-pre-indent #[nil "\303	\\!\210\nU\205\303	!\207" [layout-indent haskell-indentation-where-pre-offset haskell-indentation-layout-offset haskell-indentation-push-indentation] 3])
(defalias 'haskell-indentation-add-where-post-indent #[(indent) "\302	\\!\207" [indent haskell-indentation-where-post-offset haskell-indentation-push-indentation] 3])
(defalias 'haskell-indentation-push-indentation #[(indent) "\203	@W\205	B\211\207" [possible-indentations indent] 2])
(defalias 'haskell-indentation-token-test #[nil "\305\211\306\211\307 \310 -\207" [indentation-point parse-line-number layout-indent following-token current-token nil 0 mark haskell-indentation-read-next-token] 5])
(defalias 'haskell-indentation-read-next-token #[nil "\306=\203\306\207\307=\203.	\310 V\203\307\207	\310 U\203\"\311\211\207	\310 W\205\213\312 \211\207\311=\2039\312 \211\207	\310 V\203D\307\211\207\313 \210`\nY\203^`\nU\203X\312 \202Y\314\306\211\207\310 \315 U\203q\310 \310 T	\310 V\203|\307\211\207	\310 U\203\207\311\211\207\312 \211\207" [current-token layout-indent indentation-point following-token current-indent left-indent end-tokens layout-end haskell-current-column layout-next haskell-indentation-peek-token haskell-indentation-skip-token no-following-token haskell-indentation-current-indentation parse-line-number] 2])
#@33 Return token starting at point.
(defalias 'haskell-indentation-peek-token #[nil "\302\303!\203\n\304\305!\207\302\306!\203\304\307!\207\302\310!\203\304\305!\207\302\311!\2033\304\305!\312	\"A\2061)\207\302\313!\203;\314\207\315\207" [tok haskell-indentation-unicode-tokens looking-at "\\(if\\|then\\|else\\|let\\|in\\|mdo\\|rec\\|do\\|proc\\|case\\|of\\|where\\|module\\|deriving\\|data\\|type\\|newtype\\|class\\|instance\\)\\([^[:alnum:]'_]\\|$\\)" match-string-no-properties 1 "[][(){}[,;]" 0 "\\(\\\\\\|->\\|<-\\|::\\|=\\||\\)\\([^-:!#$%&*+./<=>?@\\\\^|~]\\|$\\)" "\\(‚Üí\\|‚Üê\\|‚à∑\\)\\([^-:!#$%&*+./<=>?@\\\\^|~]\\|$\\)" assoc "[-:!#$%&*+./<=>?@\\\\^|~`]" operator value] 3 (#$ . 37559)])
#@25 Skip to the next token.
(defalias 'haskell-indentation-skip-token #[nil "\302\303\304!\2042\303\305!\2042\303\306!\2042\303\307!\2042\303\310!\2042\303\311!\2042\303\312!\2042\303\313!\2039\314\225b\210\202=\315\316!\210\317\320 !\210	\321=\205^n\205^\302f\322=\205^\302u\210\317\320 !\210\202B)\207" [case-fold-search haskell-literate nil looking-at "'\\([^\\']\\|\\\\.\\)*'" "\"\\([^\\\"]\\|\\\\.\\)*\"" "[[:upper:]]\\(\\sw\\|'\\)*\\(\\.\\(\\sw\\|'\\)+\\)*" "\\sw\\(\\sw\\|'\\)*" "[0-9][0-9oOxXeE+-]*" "[-:!#$%&*+./<=>?@\\\\^|~]+" "[](){}[,;]" "`[[:alnum:]']*`" 0 skip-syntax-forward "^-" forward-comment buffer-size bird 62] 2 (#$ . 38273)])
(provide 'haskell-indentation)
