# Install LiquidHaskell To run `liquid` you need to install: 1. An SMT solver 2. The `liquid` binary via package manager *or* source. ## Step 1: Install SMT Solver Download and install *at least one* of + [Z3](https://github.com/Z3Prover/z3/releases) + [CVC4](http://cvc4.cs.nyu.edu/) + [MathSat](http://mathsat.fbk.eu/download.html) ## Step 2: Install `liquid` via Package Manager Simply do: cabal install liquidhaskell We are working to put `liquid` on `stackage`. Note: Currently, LiquidHaskell on hackage does not compile against GHC 8. Please make sure you are installing with GHC version less than 8. You can designate a specific version of LiquidHaskell to ensure that the correct GHC version is in the environment. As an example, cabal install liquidhaskell-0.6.0.0 ## Step 2: Install `liquid` from Source If you want the most recent version, you can build from source as follows, either using `stack` (recommended) or `cabal`. In either case: *recursively* clone the repo and then build: ### Build with `stack` (recommended) This requires that you have installed [stack][stack] (which we strongly recommend!) git clone --recursive git@github.com:ucsd-progsys/liquidhaskell.git cd liquidhaskell stack install ## Build with `cabal` git clone --recursive git@github.com:ucsd-progsys/liquidhaskell.git cd liquidhaskell cabal sandbox init cabal sandbox add-source ./liquid-fixpoint cabal install ## Troubleshooting 1. If you're on Windows, please make sure the SMT solver is installed in the **same** directory as LiquidHaskell itself (i.e. wherever `cabal` or `stack` puts your binaries). That is, do: ``` which liquid ``` and make sure that `z3` or `cvc4` or `mathsat` are in the `PATH` returned by the above. 2. If you installed via `stack` and are experiencing path related woes, try: ``` stack exec -- liquid path/to/file.hs ``` [stack]: https://github.com/commercialhaskell/stack/blob/master/doc/install_and_upgrade.md