I think the ease of parsing is a big reason why so many lisp implementations exist. Parsing is much less fun than semantics.
Related Posts
I've released difftastic 0.65! Highlights of this release:
* Better parsing of Clojure, Common Lisp, Kotlin, Rust and Zig.
* Quality of life improvements for binary files.
https://github.com/Wilfred/difftastic/releases/tag/0.65.0
I'm having fun writing a simple type checker, but I'm learning firsthand why syntax-directed checking doesn't work. It prevents inference.
My checker catches real bugs, but it can't handle cases like this:
[1, 2].map(fun(x) { x + 1; })
I think I need bidirectional checking.
I've released difftastic 0.63! In this release:
* Better parsing of Elixir, LaTeX, Make, Nix, Rust and YAML
* Better detecting of text encoding, especially on Windows
* Prebuilt musl binaries, so you can run released binaries on older systems!
https://github.com/Wilfred/difftastic/releases/tag/0.63.0