FOSS Fexprs: https://github.com/limvot/kraken

### Concept:

- Minimal, purely functional Kernel/Scheme as core language, with Kernel/Vau calculus inspiration oblivating the need for non-reader macros (Kernel/Vau calculus thesis)
- Partial evaluation (or now, maybe tracing JIT compilation) to make fexprs fast (my PhD research! First paper on arXiv)
- Implement Type Systems as Macros (but using Fexprs instead of macros) (paper, up to System Fω) (second paper, up to dependent types)
- Use above "type systems as fexprs" to add types and create a statically-typed language on top (with Algebraic Effects using the underlying delimited continuations, etc)

### About:

This is my 4th run at this Lisp concept, with tracing JIT compilation to make fexprs fast forming the core of my current PhD research. (tiny personal PhD website here)

#### Vau/Kernel as simple core:

By constructing our core language on a very simple Vau/Kernel base, we can keep the base truely tiny, and build up normal Lisp functions and programming language features in the language itself. This should help implement other programming languages concisely, and will hopefully make optimization easier and more broadly applicable.

### Next Steps

- Implement persistent functional data structures
  - ✔ RB-Tree
  - ☐ Hash Array-Mapped Trie (HAMT) / Relaxed Radix Balance Tree (RRB-Tree)
  - ☐ Hash Map based on the above
  - ☐ Hash Set based on the above
- Sketch out Kraken language on top of core Lisp, includes basic Hindley-Milner type system
- Re-self-host using functional approach in above Kraken language