We do not define abstract methods in Go because we don't have inheritance in Go. Use this approach:
Replace BaseTreeNode with an interface satisfied by all node types.
For AVL trees nodes, declare all fields and methods in AVLTreeNode
. Do not embed anything.