pub fn typecheck(
root_expr_id: ExprNodeId,
builtin_types: &[(Symbol, TypeNodeId)],
file_path: Option<PathBuf>,
) -> (ExprNodeId, InferContext, Vec<Box<dyn ReportableError>>)pub fn typecheck(
root_expr_id: ExprNodeId,
builtin_types: &[(Symbol, TypeNodeId)],
file_path: Option<PathBuf>,
) -> (ExprNodeId, InferContext, Vec<Box<dyn ReportableError>>)