to handle simple recursion cases where the function has an explicit return type hint, the function must be defined before evaluating its body
to handle simple recursion cases where the function has an explicit return type hint, the function must be defined before evaluating its body