Immutable avl tree implementation in Objective-C.