Add a haskell language server for COC
diff --git a/modules/neovim/coc/default.nix b/modules/neovim/coc/default.nix
index 40f8895..5dcf785 100644
--- a/modules/neovim/coc/default.nix
+++ b/modules/neovim/coc/default.nix
@@ -55,6 +55,29 @@
             command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
             filetypes = [ "nix" ];
           };
+          haskell = {
+            command = "${pkgs.haskell-language-server}/bin/haskell-language-server-wrapper";
+            args = [ "--lsp" ];
+            rootPatterns = [
+              "*.cabal"
+              "stack.yaml"
+              "cabal.project"
+              "package.yaml"
+              "hie.yaml"
+            ];
+            filetypes = [ "haskell" "lhaskell" ];
+            settings = {
+              haskell = {
+                checkParents = "CheckOnSave";
+                checkProject = true;
+                maxCompletions = 40;
+                formattingProvider = "ormolu";
+                plugin = {
+                  stan = { globalOn = true; };
+                };
+              };
+            };
+          };
         };
         "snippets.extends" = {
           markdown = [ "tex" ];
@@ -98,6 +121,13 @@
       rustc
       go
       rust-analyzer
+      stylish-haskell
+      haskell-language-server
+      (haskellPackages.ghcWithPackages (pkgs: with pkgs; [
+        dbus
+        monad-logger
+        xmonad-contrib
+      ]))
       texlab
       omnisharp-roslyn
       jdt-language-server