TODO: UPDATE the website with the new code
NOTE The PDF/HTML are sometimes not up-to-date with the latest LiquidHaskell release. Please clone the github repository and run locally for best results.
LH is available as a GHC plugin from version 0.8.10.
Thus, the best way to do this tutorial is to
Step 1 Clone this repository,
$ git clone https://github.com/ucsd-progsys/liquidhaskell-tutorial.git
Step 2: Iteratively edit-compile until it builds without any liquid type errors
$ cabal v2-build
or
$ stack build --fast --file-watch
The above workflow will let you use whatever Haskell tooling you use for your favorite editor, to automatically display LH errors as well.
- Case Study: Okasaki's Lazy Queues
- Case Study: Associative Maps
- Case Study: Pointers & Bytes
- Case Study: AVL Trees
$ git pull origin master
$ git submodule update --recursive
$ cp package.yaml.pandoc package.yaml
$ mkdir _site dist
$ stack install pandoc
$ make html
$ make pdf
$ cp dist/pbook.pdf _site/book.pdf
$ git add _site
$ git commit -a -m "updating GH-PAGES"
$ git push --force-with-lease origin HEAD:gh-pages
- Install LaTeX dependencies:
- Texlive
- texlive-latex-extra
- texlive-fonts-extra
$ make pdf
$ evince dist/pbook.pdf
Solutions are in separate private repo
A work list of TODO items can be found in the bug tracker
Editing feedback and various gotchas can be found in feedback.md