FunctionSet, AVL and RedBlack Trees in Haskell