An tutorial-style implementation of liquid/refinement types for a subset of Ocaml/Reason.
Haskell
152
24 commits
updated Sep 23, 2025
A tutorial-style implementation of liquid/refinement types for a subset of Ocaml/Reason.
1. Get Z3
Download from here and make sure z3 is on your $PATH
2. Clone the repository
$ git clone git@github.com:ranjitjhala/sprite-lang.git
$ cd sprite-lang
3. Build
Using stack
$ stack build
or
$ cabal v2-build
$ stack exec -- sprite 8 test/L8/pos/listSet.re
The 8 indicates the language-level -- see below.
When you run sprite N path/to/file.re
the generated Horn-VC is saved in path/to/.liquid/file.re.smt2.
So for example
$ stack exec -- sprite 8 test/L8/pos/listSet.re
will generate a VC in
test/L8/pos/.liquid/listSet.re.smt2
Haskell
88.3%
Reason
11.7%
An tutorial-style implementation of liquid/refinement types for a subset of Ocaml/Reason.
Haskell
152
24 commits
updated Sep 23, 2025
A tutorial-style implementation of liquid/refinement types for a subset of Ocaml/Reason.
1. Get Z3
Download from here and make sure z3 is on your $PATH
2. Clone the repository
$ git clone git@github.com:ranjitjhala/sprite-lang.git
$ cd sprite-lang
3. Build
Using stack
$ stack build
or
$ cabal v2-build
$ stack exec -- sprite 8 test/L8/pos/listSet.re
The 8 indicates the language-level -- see below.
When you run sprite N path/to/file.re
the generated Horn-VC is saved in path/to/.liquid/file.re.smt2.
So for example
$ stack exec -- sprite 8 test/L8/pos/listSet.re
will generate a VC in
test/L8/pos/.liquid/listSet.re.smt2
Haskell
88.3%
Reason
11.7%