Throughout the codebase, we use left: bool to parameterize between left and right. This is not very intuitive to read (e.g. tree.attach(true, child)).
Could fix by adding an enum Side { Left, Right }, and/or adding variants of the methods with _left and _right suffixes.
This is only a style change and probably doesn't affect the compiler's output at all.