   (when (not (package-installed-p p))
     (package-install p)))
 
-;;; Non-package-managed elisp files
+;; Non-package-managed elisp files
 (add-to-list 'load-path "~/.emacs.d/lisp/")
 
-;;; compile
+;; compile
 (setq compilation-ask-about-save nil)
 (setq compilation-auto-jump-to-first-error t)
 (setq compilation-scroll-output t)
 (add-hook 'prog-mode-hook (lambda () (local-set-key (kbd "C-c c") 'compile)))
 
-;;; macros
+;; macros
 (defun my-macro-query (arg)
   "Prompt for input using minibuffer during kbd macro execution.
     With prefix argument, allows you to select what prompt string to use.

;; join-line
(global-set-key (kbd "C-c j") 'join-line)

;;; highlight every line
(global-hl-line-mode 1)

;;; turn off blinking cursor
(blink-cursor-mode 0)

;;; tags
(global-set-key (kbd "C-c t") 'find-tag)

;;; multiple-cursors
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)

;;; save every n keystrokes
(setq auto-save-interval 20)

;;; paredit
(setq paredit-space-for-delimiter-predicates
      '((lambda (del endp)
          (if (member major-mode '(haskell-mode clojure-mode emacs-lisp-mode

            (define-key haskell-mode-map (kbd "C-c <") 'haskell-move-nested-left)
            (turn-on-haskell-indentation)))

;; js-mode
(add-hook 'js-mode-hook
          (lambda ()
            (font-lock-add-keywords
