Skip to content

Instantly share code, notes, and snippets.

@m-renaud
Last active November 28, 2018 07:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save m-renaud/2c085d453b1263f1a6ed52d0c90688de to your computer and use it in GitHub Desktop.
Save m-renaud/2c085d453b1263f1a6ed52d0c90688de to your computer and use it in GitHub Desktop.
Pretty Haskell operators
;; Prefix variable name with mrenaud/ in case haskell-mode adds
;; a 'haskell-prettify-alist in a future release.
(defvar mrenaud/haskell-prettify-alist
'(("\\" . ?λ)
("->>" . (?\s (Br . Bl) ?\s (Br . Bl) ?\s
(Bl . Bl) ?- (Bc . Br) ?- (Bc . Bc) ?>
(Bc . Bl) ?- (Br . Br) ?>))
(">>=" . (?\s (Br . Bl) ?\s (Br . Bl) ?\s
(Bl . Bl) ?> (Bc . Bc) ?>
(Bc . Bl) ?= (Br . Br) ?=))
("=<<" . (?\s (Br . Bl) ?\s (Br . Bl) ?\s
(Bl . Bl) ?= (Bc . Br) ?= (Bc . Bc) ?<
(Bl . Bl) ?= (Br . Br) ?<))
("->>" . (?\s (Br . Bl) ?\s (Br . Bl) ?\s
(Bl . Bl) ?- (Bc . Br) ?- (Bc . Bc) ?>
(Bc . Bl) ?- (Br . Br) ?>))
("=>" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?= (Bc . Br) ?= (Bc . Bc) ?=
(Br . Br) ?>))
("->" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?- (Bc . Br) ?- (Bc . Bc) ?-
(Bc . Bl) ?- (Br . Br) ?>))
("<-" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?< (Bc . Br) ?- (Bc . Bc) ?-
(Bc . Bl) ?- (Br . Br) ?-))
("-<" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?- (Bc . Bc) ?- (Br . Br) ?<))
(">-" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?> (Bc . Bc) ?- (Br . Br) ?-))
("++" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?+ (Bc . Br) ?+ (Bc . Bc) ?-
(Bc . Bl) ?+ (Br . Br) ?+))
("==" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?= (Bc . Br) ?= (Bc . Bc) ?=
(Bc . Bl) ?= (Br . Br) ?=))
("/=" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?= (Bc . Br) ?= (Bc . Bc) ?/
(Bc . Bl) ?= (Br . Br) ?=))
("<>" . (?\s (Br . Bl) ?\s
(Bl . Bl) ?< (Bc . Br) ?<
(Bc . Bl) ?> (Br . Br) ?>))
("+++" . (?\s (Br . Bl) ?\s (Br . Bl) ?\s
(Bl . Bl) ?+ (Bc . Br) ?- (Bc . Bc) ?+
(Bc . Bl) ?- (Br . Br) ?+))))
(defun mrenaud/haskell-mode-hook ()
(setq prettify-symbols-alist mrenaud/haskell-prettify-alist)
(prettify-symbols-mode 1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment