- A Prolog parser in Prolog that can parse itself
- A Prolog generator for the parsed declarations
- Improved syntax and semantics
- Runtime type and contract checking
- A REPL
- Emacs mode
- Include statement
- Functions and expressions instead of predicates and goals
- Stack traces
- Clause transformation by annotation
- Integration tests
- Modules
- Explicit import of external functions
- Don't use Prolog's eval for the REPL
- Split prelude library
- Relative paths
- Namespaces
- Split runtime library
- Object types and named arguments
- Interpreter can run the compiler
- Indentation-sensitive syntax (get rid of those parentheses)
- Proper AST instead of raw terms (to allow better type checking)
-
nondet
clause annotations (to improve performance and reasoning) - Replace
,
withdo
blocks - Add
where
clauses - Anonymous functions, lambdas and closures
- First-class functions
- Improved error messages
- Compile-time type checking
- Unicode
- Open sets
- Constraint solving
- Termination checking
- Theorem proving
- Parallelism
- Effects
- A faster backend
- language server
- unused variable warning