doomemacs/modules/lang/haskell/README.org

68 lines
2.2 KiB
Org Mode
Raw Normal View History

2017-08-21 20:07:07 +02:00
#+TITLE: :lang haskell
2017-05-25 20:08:50 +02:00
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
2017-08-21 20:07:07 +02:00
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).
2017-05-25 20:08:50 +02:00
I'd love to incorporate more of it into my machine learning work, but Python and Julia hold that crown. For now.
#+end_quote
2017-08-21 20:07:07 +02:00
* Table of Contents :TOC:
- [[#install][Install]]
- [[#haskell][Haskell]]
- [[#dependencies][Dependencies]]
- [[#troubleshooting][Troubleshooting]]
- [[#resources][Resources]]
2017-05-25 20:08:50 +02:00
2017-08-21 20:07:07 +02:00
* Install
** Haskell
To get started with Haskell, you need *stack* installed.
2017-05-25 20:08:50 +02:00
*** MacOS
#+BEGIN_SRC sh :tangle (if (doom-system-os 'macos) "yes")
2017-08-21 20:07:07 +02:00
brew install haskell-stack
stack setup
2017-05-25 20:08:50 +02:00
#+END_SRC
*** Arch Linux
#+BEGIN_SRC sh :dir /sudo:: :tangle (if (doom-system-os 'arch) "yes")
2017-08-21 20:07:07 +02:00
sudo pacman --needed --noconfirm -S stack
# Replace pacaur with your AUR package manager of choice
pacaur --needed --noconfirm -S ncurses5-compat-lib
stack setup
2017-05-25 20:08:50 +02:00
#+END_SRC
** Dependencies
2017-08-21 20:07:07 +02:00
This module requires ~ghc-mod~ (as well as ~intero~, but those will be automatically installed).
2017-05-25 20:08:50 +02:00
#+BEGIN_SRC sh
2017-08-21 20:07:07 +02:00
stack install ghc-mod
2017-05-25 20:08:50 +02:00
#+END_SRC
2017-08-21 20:07:07 +02:00
Also ensure that ~\~/.local/bin~ is in ~PATH~:
2017-05-25 20:08:50 +02:00
#+BEGIN_SRC sh
# place this in your profile file, like ~/.bash_profile or ~/.zshenv
2017-08-21 20:07:07 +02:00
export PATH="~/.local/bin:$PATH"
2017-05-25 20:08:50 +02:00
#+END_SRC
2017-08-21 20:07:07 +02:00
* Troubleshooting
2017-05-25 20:08:50 +02:00
+ 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]].
2017-08-21 20:07:07 +02:00
* Resources
2017-05-25 20:08:50 +02:00
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