I finished converting the logic for AA Tree as described in Wikipedia.
Specifically, I finished delete. This is the most difficult piece of logic and conversion to Clojure was non-trivial as well.
I've come a long way. I now consider myself a rather bad Clojure programmer. :D
Next step is to start over. I've been working on sets. But I really need to start with maps, as Clojure implements sets as maps and I will be building on the Clojure implementation.
So, why isn't this fun? It is my fault for picking such a difficult first project. And Clojure's fault for requiring an understanding of a large body of uncommented code just to implement an alternative data structure.
Another aspect of this is that, while Clojure is booted up from Java, the internals were never rewritten in Clojure. So the classical bootstrap pattern was never completed. And of course, I'm being a bit non-conformant by writing AA trees in Clojure rather than in Java. :D