from typing import Optional
from trees import Node

type BinarySearchTree[T] = Optional[Node[T]]

def insert[T](node: BinarySearchTree[T], value: T) -> BinarySearchTree[T]:
    pass

def exists[T](node: Optional[Node[T]],  value: T) -> bool:
    pass

def remove[T](node: BinarySearchTree[T], value: T) -> BinarySearchTree[T]:
    pass