slick BST implementation from CLRS