;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-show.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))

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


(defvar sexp-show "sexp-show")
(byte-code "\300\301!\210\300\302!\207" [require haskell-string cl] 2)
#@57 Replace the given region with a pretty printed version.
(defalias 'haskell-show-replace-region #[nil "\300\301 \302 \"\207" [haskell-show-replace region-beginning region-end] 3 (#$ . 639) nil])
#@95 Replace the given region containing a Show value with a pretty
  printed collapsible version.
(defalias 'haskell-show-replace #[(start end) "\303	\"b\210	|\210\304\n!)\207" [start end text buffer-substring-no-properties haskell-show-parse-and-insert] 3 (#$ . 839)])
#@107 Parse a `string' containing a Show instance value and insert
  it pretty printed into the current buffer.
(defalias 'haskell-show-parse-and-insert #[(given) "\304!\305\230?\2054`\306 Z\307!\310\311	\"\2031\312	!\211@\313\232\203)c\202-\314\n\")\2023c*\207" [given result current-column v haskell-trim "" line-beginning-position haskell-show-parse string-match "^[\\(]" read arbitrary haskell-show-insert-pretty] 4 (#$ . 1116)])
#@36 Parse the given input into a tree.
(defalias 'haskell-show-parse #[(given) "\303\304!rq\210\305\216	c\210\306ed\n\307$\210\310ed\"+\207" [#1=#:temp-buffer given sexp-show generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) shell-command-on-region t buffer-substring-no-properties] 5 (#$ . 1563)])
#@70 Insert a Show `tree' into the current buffer with collapsible nodes.
(defalias 'haskell-show-insert-pretty #[(column tree &optional parens) "\306@\307\"\203`\310c\210\311\312A\"\210\313c)\207\306@\314\"\203.`\315c\210\311\316A\"\210\317c)\207\306@\320\"\203\242A\321C\f\203D\315\202E\322c\210`@c\210\323
`\324\325$;\326
`\327\330$\210\331;\302\n#\210*\332c\210`S<\333\f\"G\\=>\311\334A\"\210\335\336<\337\"Pc\210\n\340>`S\321\341$\240\210\342\n@\343\341#\210\f\203\236\317\202\237\322c,\207\306@\344\"\203\275`?\345\346A\"c\210\326?`\327\347$)\207\306@\350\"\203:`@\351c\210<AG\\\352W\203\351\345\353A\"c\210\326@T`\327\354$\210\2026\355c\210\345\353A\"c\210\340\356@\\`\321\341$\342\n\343\341#\210\326\356@\\`\327\354$\210\323@T\356@\\\324\325$;\326@T\356@\\\327\357$\210\331;\302\nC#\210\331;\360\341#\210*\351c)\207\306@\361\"\203~AA\f\203N\315\202O\322c\210`BA@c\210\326B`\327\330$\210)AA\203r\362c\210\311\363AA\"\210\f\203z\317\202{\322c)\207\306@\364\"\203\232\365c\210\366A!c\210\326`S`\327\354$\210\365c\207\306@\367\"\203\260`Ac\210\326	`\327\370$)\207\371\372\"\207" [tree start overlay record parens link-start memql 'list "[" haskell-show-mapcar/i #[(x i len) "\306T	\"\210\n\307ZV?\205&\310\f
\"G\\\311W\203\312c\207\313\314T\315\"Pc\207" [column x i len tree parens haskell-show-insert-pretty 2 haskell-show-pretty 80 "," ",\n" haskell-show-indent #1=""] 4] "]" 'tuple "(" #[(x i len) "\306T	\"\210\n\307ZV?\205&\310\f
\"G\\\311W\203\312c\207\313\314T\315\"Pc\207" [column x i len tree parens haskell-show-insert-pretty 2 haskell-show-pretty 80 "," ",\n" haskell-show-indent #1#] 4] ")" 'record nil #1# make-text-button :type haskell-show-toggle-button put-text-property face font-lock-type-face button-put " {\n" haskell-show-pretty #[(field i len) "\305\306V\203	\307W\203\306\202\n@\"c\210\310c\210\311`\312Z`\313\314$\210\315	\307W\203.\306\2025\316@G\n\312#A\"\210\f\317ZV?\205M	\307W\203K\320c\207\321c\207" [i show-len column field len haskell-show-indent 0 80 " = " put-text-property 3 face font-lock-constant-face haskell-show-insert-pretty + 2 ", " ",\n"] 5] "\n" haskell-show-indent "}" make-overlay t overlay-put invisible 'num format "%d" font-lock-constant-face 'string "\"" 60 "%s" font-lock-string-face "â€¦" 2 font-lock-keyword-face hide-on-click 'data " " #[(x i len) "\304	\305#\210\n\306ZV?\205\307c\207" [column x i len haskell-show-insert-pretty t 2 " "] 4] 'char "'" char-to-string 'arbitrary font-lock-comment-face error "Unsupported node type: %S" button column show-len curly-start num-start str-start data cons-start] 6 (#$ . 1926)])
(define-button-type 'haskell-show-toggle-button 'action 'haskell-show-toggle-button-callback 'follow-link t 'help-echo "Click to expandâ€¦")
#@48 The callback to toggle the overlay visibility.
(defalias 'haskell-show-toggle-button-callback #[(btn) "\303\301\"\211\203\304	@\305\306	@\305\"?#\210)\303\307\"\211\205$\310\305\311#)\207" [btn overlay hide button-get overlay-put invisible overlay-get remove-on-click button-put t] 7 (#$ . 4758)])
#@21 Show a Show `tree'.
(defalias 'haskell-show-pretty #[(tree &optional parens) "\304@\305\"\203\306\307\310\311A\312#\"\207\304@\313\"\203<A\306\314\n\203'\315\202(\316	@\310\317	A\320#\n\2038\321\2029\316%)\207\304@\322\"\203J\306\323A\"\207\304@\324\"\203X\306\325A\"\207\304@\326\"\203\215A\306\327\n\203m\315\202n\316@A\204y\316\202\201\330\310\331A\330#P\n\203\211\321\202\212\316%)\207\304@\332\"\203\237\306\333\310\334A\312#\"\207\304@\335\"\203\272\306\336A\337U\203\264\340\202\270\341A!\"\207\304@\342\"\203\305A\207\343\344\"\207" [tree record parens data memql 'list format "[%s]" mapconcat #[(x) "\301!\207" [x haskell-show-pretty] 2] "," 'record "%s%s {%s}%s" "(" "" #[(field) "\301\302@\303A!#\207" [field format "%s = %s" haskell-show-pretty] 5] ", " ")" 'num "%s" 'string "%S" 'data "%s%s%s%s" " " #[(x) "\301\302\"\207" [x haskell-show-pretty t] 3] 'tuple "(%s)" #[(x) "\301!\207" [x haskell-show-pretty] 2] 'char "'%s'" 39 "\\'" char-to-string 'arbitrary error "Unsupported node type: %S"] 9 (#$ . 5070)])
#@77 Map `f' across `xs' giving the index and length to `f' as extra parameters.
(defalias 'haskell-show-mapcar/i #[(f xs) "G\303\304\305\"*\207" [xs i len 0 mapcar #[(x) "	\n#\210\nT\211\207" [f x i len] 4]] 3 (#$ . 6149)])
#@35 Indent a string `s' at colum `n'.
(defalias 'haskell-show-indent #[(n s) "\302\303\"	P\207" [n s make-string 32] 3 (#$ . 6382)])
(provide 'haskell-show)
