This repo demonstrates how to use LiquidHaskell as a GHC plugin.
lh-plugin-demo.cabal
shows
- how to tell GHC to invoke the plugin
- how to specify the relevant LH wrapper packages as dependencies
stack.yaml shows
- how to point
stack
at the relevant LH repositories on hackage
stack.yaml.github shows
- how to point
stack
at the relevant LH repositories on github
cabal.project shows
- how to point
cabal
to the relevant LH repositories on hackage
cabal.project.github shows
- how to point
cabal
to the relevant LH repositories on github
By virtue of being a plugin, you now get LH errors
-
when you (re)load in GHCi.
-
from all editor plugins based on
ghci
integration
VSCode running ghcid
in a terminal
VSCode with the Simple GHC (Haskell) Integration
plugin
Vim/Neovim with ALE
and the stack-build
linter
Additionally, ghcid
produces LH errors on recompilation
For stack
-based projects, run with
$ ghcid -c "stack ghci"
For cabal
-based projects, run with
$ ghcid -c "cabal v2-repl"
The plugin also ensures that specifications written for one package are used when checking client packages. For an example, see the associated lh-plugin-demo-client package.