Remove comparers from generic type constraints in favor of passing a comparer as an argument.  BST operations now return new root nodes.