function brand<K, V>(unbranded: UnbrandedTreeNode<K, V>): TreeNode<K, V> {
  return (unbranded as unknown) as TreeNode<K, V>
}