Implement the most common balanced binary trees: - AVL tree - Red-black tree - Splay tree Allow arbitrary annotations on the nodes. Think about ways to allow non-sorted trees.