(require 'cl) (when (>= emacs-major-version 24) (require 'package) (package-initialize) (add-to-list 'package-archives '("melpa" . "http://stable.melpa.org/packages/") t)) (defvar prelude-packages '(haskell-mode) "A list of packages to ensure are installed at launch.") (defun prelude-packages-installed-p () (loop for p in prelude-packages when (not (package-installed-p p)) do (return nil) finally (return t))) (if (version<= "24.0" emacs-version) (unless (prelude-packages-installed-p) ;; check for new packages (package versions) (message "%s" "Emacs Prelude is now refreshing its package database...") (package-refresh-contents) (message "%s" " done.") ;; install the missing packages (dolist (p prelude-packages) (when (not (package-installed-p p)) (package-install p))))) ;; Haskell (defun my-haskell-hook () (progn (interactive-haskell-mode) (haskell-doc-mode) (haskell-indentation-mode) )) (add-hook 'haskell-mode-hook 'my-haskell-hook)