.. | ||
+dante.el | ||
+intero.el | ||
+lsp.el | ||
autoload.el | ||
config.el | ||
doctor.el | ||
packages.el | ||
README.org |
:lang haskell
This module adds Haskell support, powered by either intero (the default) or dante.
- Code completion (
company-ghc
) - Look up documentation (
hoogle
) - eldoc support (
dante
) - REPL (
ghci
) - Syntax-checking (
flycheck
) - Code navigation (
dante
) - Snippets
Haskell contends with C and Ruby as my favorite language. My Haskell code will never save the world, but I'll reach for it for small projects and programming exercises (like projecteuler.com or exercism.io).
I'd love to incorporate it into my machine learning work, but Python and Julia hold that crown. For now.
Table of Contents TOC
Install
This module has two submodules: Intero or Dante. To activate one, specify one or the other in your pubilc init.el
, e.g.:
(doom! :lang (haskell +intero))
;; or
(doom! :lang (haskell +dante))
Your dependencies will change slightly, depending on which you choose:
Intero
Haskell
To get started you must install stack:
MacOS
brew install haskell-stack
stack setup
Arch Linux
sudo pacman --needed --noconfirm -S stack
# Replace pacaur with your AUR package manager of choice
pacaur --needed --noconfirm -S ncurses5-compat-lib
stack setup
External dependencies
This module requires ghc-mod
.
stack install ghc-mod
Also ensure that \~/.local/bin
is in PATH
:
# place this in your profile file, like ~/.bash_profile or ~/.zshenv
export PATH="~/.local/bin:$PATH"
Dante
Haskell
To get started with Dante and Haskell, you must install cabal
- cabal (the haskell package builder)
- ghc/ghci (the compiler, syntax checker & repl)
MacOS
brew install cabal-install ghc
Arch Linux
sudo pacman --needed --noconfirm -S cabal-install ghc
External dependencies
Dante requires ghc-mod
and hoogle
:
cabal update
cabal install happy haskell-src-exts # ghc-mod/hoogle dependencies
cabal ghc-mod hoogle
And add Cabal's bin path to $PATH:
export PATH="$HOME/.cabal/bin:$PATH"
Troubleshooting
- Stack users: a
dist/setup-config
in your project may cause ghc-mod to not work.
Resources
Here are a few resources I've found indespensible in my Haskell adventures:
- Learn you a haskell for great good
- Haskell Programming from first principles
- Awesome Haskell: an extensive list of haskell resources
- The Haskell Tool Stack docs