By the way: I just noticed that RedBlackTree.scala also uses the ugly but efficient null for empty optimization.