Reading your article you had some issues with getting an RedBlack tree working in a pure functional style.
However a B-tree would work a lot better in a pure functional style.
Every subtree is automatically balanced because growing the height only happens at the root. And splits and joins only affect the current node and its siblings.