input: Write a function to evaluate a binary expression tree.
  assert eval(TreeNode('+', TreeNode(3), TreeNode(5))) == 8
  assert eval(TreeNode('*', TreeNode(2), TreeNode(4))) == 8
  assert eval(TreeNode('-', TreeNode(10), TreeNode(3))) == 7
  assert eval(TreeNode('/', TreeNode(9), TreeNode(3))) == 3
output: class TreeNode:
      def __init__(self, value, left=None, right=None):
          self.value = value
          self.left = left
          self.right = right
  
  def eval(root):
      if isinstance(root.value, int):
          return root.value
      left_val = eval(root.left)
      right_val = eval(root.right)
      
      if root.value == '+':
          return left_val + right_val
      elif root.value == '-':
          return left_val - right_val
      elif root.value == '*':
          return left_val * right_val
      elif root.value == '/':
          return left_val // right_val  # assuming integer division