#+TITLE: :lang haskell This module adds [[https://www.haskell.org/][Haskell]] support. + Code completion (~company-ghc~) + Look up documentation (~hoogle~) + eldoc support (~dante~) + REPL (~ghci~) + Syntax-checking (~flycheck~) + Code navigation (~dante~) + [[https://github.com/hlissner/emacs-snippets/tree/master/haskell-mode][Snippets]] #+begin_quote Haskell contends with C and Ruby as my favorite language. I don't think my Haskell code will ever 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 more of it into my machine learning work, but Python and Julia hold that crown. For now. #+end_quote * Table of Contents :TOC: - [[#install][Install]] - [[#haskell][Haskell]] - [[#dependencies][Dependencies]] - [[#troubleshooting][Troubleshooting]] - [[#resources][Resources]] * Install ** Haskell To get started with Haskell, you need *stack* installed. *** MacOS #+BEGIN_SRC sh :tangle (if (doom-system-os 'macos) "yes") brew install haskell-stack stack setup #+END_SRC *** Arch Linux #+BEGIN_SRC sh :dir /sudo:: :tangle (if (doom-system-os 'arch) "yes") sudo pacman --needed --noconfirm -S stack # Replace pacaur with your AUR package manager of choice pacaur --needed --noconfirm -S ncurses5-compat-lib stack setup #+END_SRC ** Dependencies This module requires ~ghc-mod~ (as well as ~intero~, but those will be automatically installed). #+BEGIN_SRC sh stack install ghc-mod #+END_SRC Also ensure that ~\~/.local/bin~ is in ~PATH~: #+BEGIN_SRC sh # place this in your profile file, like ~/.bash_profile or ~/.zshenv export PATH="~/.local/bin:$PATH" #+END_SRC * Troubleshooting + Stack users: if a ~dist/setup-config~ file exists in your project, [[ https://github.com/DanielG/ghc-mod/wiki#known-issues-related-to-stack][ghc-mod may refuse to work]]. * Resources Here are a few resources I've found indespensible in my Haskell adventures: + [[http://learnyouahaskell.com/][Learn you a haskell for great good]] + [[http://haskellbook.com/][Haskell Programming from first principles]] + [[https://github.com/krispo/awesome-haskell][Awesome Haskell]]: an extensive list of haskell resources