All Projects → owo-lang → voile-rs

owo-lang / voile-rs

Licence: Apache-2.0 license
Dependently-typed row-polymorphic programming language, evolved from minitt-rs

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to voile-rs

MLPolyR
The MLPolyR programming language, revived
Stars: ✭ 21 (-76.4%)
Mutual labels:  type-theory, extensible
XParsec
extensible, type-and-source-polymorphic, non-linear applicative parser combinator library for F# 3.0 and 4.0
Stars: ✭ 40 (-55.06%)
Mutual labels:  extensible
Agda
Agda is a dependently typed programming language / interactive theorem prover.
Stars: ✭ 1,699 (+1808.99%)
Mutual labels:  type-theory
Sml Redprl
The People's Refinement Logic
Stars: ✭ 214 (+140.45%)
Mutual labels:  type-theory
Foundational Knowledge For Programmers
List of resources about foundational knowledge for programmers (supposed to last a few decades)
Stars: ✭ 115 (+29.21%)
Mutual labels:  type-theory
reed-thesis
My undergradate thesis on coinductive types in univalent type theory
Stars: ✭ 14 (-84.27%)
Mutual labels:  type-theory
Cooltt
😎TT
Stars: ✭ 85 (-4.49%)
Mutual labels:  type-theory
rockgo
A developing game server framework,based on Entity Component System(ECS).
Stars: ✭ 617 (+593.26%)
Mutual labels:  extensible
venusscript
A dynamic, interpreted, scripting language written in Java.
Stars: ✭ 17 (-80.9%)
Mutual labels:  extensible
Redtt
"Between the darkness and the dawn, a red cube rises!": a proof assistant for cartesian cubical type theory
Stars: ✭ 175 (+96.63%)
Mutual labels:  type-theory
Lean
Homepage Theorem Proving in Lean FAQ
Stars: ✭ 2,006 (+2153.93%)
Mutual labels:  type-theory
Proofs
A selection of formal proofs in Coq.
Stars: ✭ 135 (+51.69%)
Mutual labels:  type-theory
Entia
Entia is a free, open-source, data-oriented, highly performant, parallelizable and extensible Entity-Component-System (ECS) framework written in C# especially for game development.
Stars: ✭ 28 (-68.54%)
Mutual labels:  extensible
Kind
A modern proof language
Stars: ✭ 2,075 (+2231.46%)
Mutual labels:  type-theory
reading-material
Reading schedule and our library of pdfs
Stars: ✭ 19 (-78.65%)
Mutual labels:  type-theory
Ttlite
A SuperCompiler for Martin-Löf's Type Theory
Stars: ✭ 94 (+5.62%)
Mutual labels:  type-theory
Hott Uf Agda Lecture Notes
Lecture notes on univalent foundations of mathematics with Agda
Stars: ✭ 162 (+82.02%)
Mutual labels:  type-theory
flyteidl
Specification of the IR for Flyte workflows and tasks. Also Interfaces for all backend services. https://docs.flyte.org/projects/flyteidl/en/stable/
Stars: ✭ 27 (-69.66%)
Mutual labels:  extensible
minitt-rs
Dependently-typed lambda calculus, Mini-TT, extended and implemented in Rust
Stars: ✭ 101 (+13.48%)
Mutual labels:  type-theory
gidti
Book: Gentle Introduction to Dependent Types with Idris
Stars: ✭ 70 (-21.35%)
Mutual labels:  type-theory

voile-rs

Crates.io Crates.io Crates.io docs.rs Actions Status dep-svg

Voile is a dependently-typed programming language with a non-dependent version of row-polymorphism, meta variable resolution and implicit parameter syntax. For language description, please head to the docs.rs page.

Voile is the language after minitt, and the next language after Voile is Narc.

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 implementation with some util codes
  • Binary Download on GitHub Actions page for Windows, Ubuntu and macOS

The most good-looking example is this one.

Install

The most recommended way of installation is to download the prebuilt binaries from GitHub Actions page. Here's how to find them.

You can install the voile type-checker by this command (cargo installation and rust stable toolchain are assumed):

cargo install voile --bin voilec

After installation, you can type-check a voile file by:

voilec [filename]

You can also start a REPL:

voilec -i

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].