This kind of tree is being used by Rome in their Rust rewrite (<a href="https://rome.tools/blog/2021/09/21/rome-will-be-rewritten-in-rust" rel="nofollow">https://rome.tools/blog/2021/09/21/rome-will-be-rewritten-in...</a>).
This is cool. I've never done a production grade tree like this, but implementing a toy immutable AVL tree you bump into the issue of rebuilding subtrees when modifying a node deep in the tree. According to Eric's notes, it seems that the red tree internally can be mutated when it needs to be edited.
I had opportunity to use Roslyn's SDK APIs to build some tools that operated on full source code or uncompilable code parts<p>and it really feels as if that was written with tooling in mind, really impressive.