Emacs color theme based on the Haskell sample in PragmataPro page.
Put Parchment-theme.el in your .emacs.d and add (load-theme 'Parchemnt) in your .emacs or init.el.
To get red-colored punctuations/operators, add below in your init.el:
;; Define font-lock-operator-face
(unless (boundp 'font-lock-operator-face)
(defface font-lock-operator-face
'((t (:inherit default)))
"Basic face for operator"
:group 'basic-faces)
(setq-default font-lock-operator-face 'font-lock-operator-face))
;; Add patterns for font-lock-operator-face
(let ((punc-list
'((c-mode "[][(){},.;:^~!&*+=|<>/?-]+")
(c++-mode "[][(){},.;:^~!&*+=|<>/?-]+")
(java-mode "[][(){},.;:^~!&*+=|<>/?-]+")
(rust-mode "[][(){},.;:^~!&*+=|<>/?-]+")
(python-mode "[][(){},.;:^~!&*+=|<>/?-]+")
(ruby-mode "[][(){},.;^~!&*+=|<>/-]+")
(perl-mode "[][(){},.;:^~!&*+=|<>/?-]+")
(lua-mode "[][(){},.;:^~!&*+=|<>/?#-]+")
(js-mode "[][(){},.;:^~!&*+=|<>/?-]+")
(emacs-lisp-mode "[][(){}]+\\|\\B[,.^~!&*+=|<>/?'`-]+\\B")
(lisp-interaction-mode "[][(){}]+\\|\\B[,.^~!&*+=|<>/?'`-]+\\B")
(lisp-mode "[][(){}]+\\|\\B[,.^~!&*+=|<>/?'`-]+\\B")
(scheme-mode "[][(){}]+\\|\\B[:,.^~!&*+=|<>/?'`-]+\\B")
(racket-mode "[][(){}]+\\|\\B[:,.^~!&*+=|<>/?'`-]+\\B")
(haskell-mode "[][(){}:;,.^~!#$@&*+=|<>/?\\-]+")
(literate-haskell-mode "[][(){}:;,.^~!#$@&*+=|<>/?\\-]+")
(elixir-mode "[][(){}:,.@^~!&*+=|<>/?'`-]+")
(tuareg-mode "[][(){}:;,.^~!#$@&*+=|<>/?\\-]+")
(coq-mode "[][(){}:;,.^~!#$@&*+=|<>/?\\-]+")
(coq-response-mode "[][(){}:;,.^~!#$@&*+=|<>/?\\-]+")
(coq-goals-mode "[][(){}:;,.^~!#$@&*+=|<>/?\\-]+")
)))
(dolist (i punc-list)
(font-lock-add-keywords
(car i)
`((,(cadr i) 0 'font-lock-operator-face)))))For each element of punc-list, the first entry is a major mode name and the second one is a punctuation/operator pattern.