Just to add a little bit to this:
DataStructures.jl contains a concrete implementation of an AVL tree, which is then used to back a SortedDict Abstract Data Type (ADT) (as well as other related ADTs).
There was some minor discussion a while back as to whether AVL trees or red-black trees would generally be faster. I think in the literature, the jury is out--it probably comes down to implementation, but the author of the current code chose to use AVL trees simply because they were easier to understand and implement (for him).
It would be great to see an implementation of red-black trees implemented with a similar interface, and see how the two compare.
As an aside, for the AVL tree and SortedDict (et al.) that are currently in DataStructures.jl, the author drew ideas heavily from the C++ map data structure, and perhaps because of this, there's a lot going on there. The SortedDict ADT, in particular, could probably use a little bit of simplification--don't feel obliged to copy/implement it fully when comparing to it.
Cheers,
Kevin