Hi,
I was interested in using happstack, mostly applying my knowledge on functional programming (which is still quite scarce) and I really liked the fact that happstack has a very detailed crash course in their official website
here. So i tried initializing a project, and I had issues in multiple steps, some of which I could not resolve.
First of all, I had issues installing happstack. I followed
this guide and installed happstack successfully, but both this command:
```bash
ghc --make -threaded HelloWorld.hs -o helloworld
```
And this command:
```bash
runhaskell HelloWorld.hs
```
did not seem to find a happstack installation. I solved it by running `cabal v1-install happstack-server` instead of `cabal install happstack-server`. As it seems, cabal changed their entire interface but still kept the old commands. So this installation guide is clearly outdated. I tried using the latest versions of all modules, using GHC 8.8.4.
The next two tutorial steps worked quite well (HelloWorld and
routing incoming requests). I was really excited! But then came the
Templating part.
The HSX tutorial is clearly outdated as the `hsx` package is deprecated and `happstack-hsp` now uses `hsx2hs`. so this line:
`{-# OPTIONS_GHC -F -pgmF trhsx #-}` is now invalid. I replaced it with `{-# OPTIONS_GHC -F -pgmFhsx2hs #-}`
Also, `happstack-hsp` doesn't have the `HSP.Identity` module since version 7.1.2, which was released a very long time ago. The tutorial still imports this module.
Removing the import, i could still not get these lines of code working:
```haskell
where
getMethod :: XMLGenT (ServerPartT IO) String
getMethod = show . rqMethod <$> askRq
```
I added the imports
```
import Happstack.Server.XMLGenT
import HSP.XML
```
but still there were issues finding the `XMLGenT` constructor. So I gave up and tried to downgrade all dependencies. Which led me to the following problem: one of the dependencies requires a very old version of the base module (specifically, it needed Haskell 7.8.3 (2014.2.0.0)). This version is so old I could not install it with ghcup neither on macOS or Ubuntu, and the compilation failed in Ubuntu 18.04. I think I couldn't even install it on Windows 10 with Chocolatey, the compilation failed as well if I remember correctly.
It would be awesome if the crash course could be updated. I could not find many resources online and finally I gave up and tried using yesod, which has a somewhat newer documentation. I don't think people would use happstack anymore if the documentation is so outdated.
Thank you for reading until the end!