Elegance is a language that believes that the best language is the one you write the fewest amount of bugs in. It primary features include:
- Refinement typing. Elegance can enforce that certain functions only accept certain values. For example, the code 1/0 is a compile time error.
- Optional impurity. Pure functions are the default, but allows impure functions for cases where mutation is typical (such as file IO or random number generation)
- Descriptive types. Instead of having a
List<Pair<Int, Int>>, you have a
This language is currently in development. The first iteration of the grammar is complete, and progress is being made on an IR.
Gradle is required to build the project. To generate the grammar, run