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.
(2012)
I had opportunity to use Roslyn's SDK APIs to build some tools that operated on full source code or uncompilable code parts
and it really feels as if that was written with tooling in mind, really impressive.