voile-rs
Voile is a dependently-typed programming language features in first-class sums and records. For language description, please head to the docs.rs page.
Resources
- Docs.rs documentation, including KaTeX-rendered typing rules
- Change Log, useful resource for tracking language evolution
- IntelliJ Plugin, which can export your code as clickable HTML
- Code Examples, which also acts as integration test suites
- Utilities Library, a rust crate extracted from Voile's prototype implementation with some util codes
Install
You can install the voile type-checker by this command (cargo installation and rust stable toolchain are assumed):
After installation, you can type-check a voile file by:
You can also start a REPL:
Progress
- Basic dependent type (minitt-rs things)
- Universe level support
- Row-types and kinds
- Record constructor
- Record projection
- Variant constructor
- Variant eliminator (case-split)
- Implicit arguments