diff --git a/content/blog/haskell_language_server_again.md b/content/blog/haskell_language_server_again.md
new file mode 100644
index 0000000..aa2b22d
--- /dev/null
+++ b/content/blog/haskell_language_server_again.md
@@ -0,0 +1,111 @@
+---
+title: Using GHC IDE for Haskell Error Checking and Autocompletion
+date: 2020-01-06T17:07:25-08:00
+draft: true
+tags: ["Haskell", "Language Server Protocol"]
+---
+
+Last year, when I took Oregon State University's CS 381 class, I ended up setting
+up my editor with the Haskell IDE engine. This made it possible
+to detect errors, view types, and have good autocompletion within the editor itself.
+Recently, I've found that GHC IDE works better for my projects, so instead
+of butchering the original article, I'll just quickly write an updated version here,
+referencing the old one when necessary.
+
+By the end of the article, your editor should be able to detect errors and
+properly autocomplete Haskell code, somewhat like in the below screenshot:
+
+![Imgur](https://i.imgur.com/CRMznGL.png)
+
+### Downloading and Installing GHC IDE
+GHC IDE is a Haskell-based program that uses the
+{{< sidenote "right" "lsp-note" "language server protocol" >}}
+You don't really need to know what the language server protocol (LSP) is
+to use GHC IDE. If you are nonetheless interested, I wrote a little
+bit about it }}#prelude-language-server-protocol">in the previous iteration of this post.
+If you want more information, check out the official Microsoft page on LSP.
+{{< /sidenote >}} to communicate with any editor that supports it. Editors
+with support the the LSP include Atom, Visual Studio Code, Emacs, and Vim. Thus,
+You can get a good Haskell development environment without tying yourself to one
+application or service.
+
+We first want to download the GHC IDE. To do this, you need to have
+[Git](https://git-scm.com/) installed. Once you have that, in your Git bash (on Windows)
+or in your terminal (maxOS, Linux), type the command:
+
+```
+git clone https://github.com/digital-asset/ghcide.git
+```
+
+To install GHC IDE, you can use either `cabal` (which is typically the `cabal-install` package,
+and is required normally for this class) or `stack` (a build tool). For `cabal`:
+
+```
+cabal install
+```
+
+And for `stack`:
+
+```
+stack install
+```
+
+This will create an executable in your `~/.local/bin` directory. By default, this
+is not usable from other programs, such as Vim, so you should add this directory
+to your path. On Linux and macOS, this is done by adding the following line
+to your `.bashrc` file (or equivalent):
+
+```
+export PATH=$PATH:/home//.local/bin
+```
+
+On Windows, this is done by
+{{< sidenote "right" "path-note" "editing your PATH variable." >}}
+If you need to know how to change your PATH
, I wrote
+about it briefly in the }}
+#installation-of-v0500-windows-systems">previous iteration of this post.
+{{< /sidenote >}} I don't run Windows,
+so I don't know where `cabal install` will place the executable, but I do know
+where the executable will appear if you use `stack install` - in the directory
+given by:
+
+```
+stack path --local-bin
+```
+
+Adding that to your path should be sufficient to use GHC IDE.
+
+### Setting up Your Editor
+This is where the paths diverge. I personally use (Neo)vim, but for the sake
+of completeness, I'll go over installation for Atom and VSCode (I'm not including
+Emacs because I know nothing about configuring Emacs).
+
+#### Atom
+There appears to be an Atom extension specifically for GHC IDE:
+[ide-haskell-ghcide](https://atom.io/packages/ide-haskell-ghcide). It doesn't
+have a lot of configuration options, and will certainly require GHC IDE to
+be in your path. However, since both GHC IDE and the Haskell IDE engine
+use the Language Server Protocol, the more mature [ide-haskell-hie](https://atom.io/packages/ide-haskell-hie) extension may work, as well. In fact, since `ide-haskell-ghcide` is so young,
+I'd recommend trying `ide-haskell-hie` first, configuring the settings (found under
+_Settings > Packages > (Search ide-haskell-hie) > Settings_)
+to use the following full path:
+
+```
+