def METHOD_NAME(defn_env: dict, phi: typing.Union[str, typing.Callable],
         fn: typing.Callable):
    tree = ast_utils.get_func_ast(fn)
    tree.decorator_list = ast_utils.filter_decorator(ssa,
                                                     tree.decorator_list,
                                                     defn_env)
    if isinstance(phi, str):
        phi_name = phi
    else:
        phi_name = ast_utils.gen_free_name(tree, defn_env)
    tree, _ = convert_tree_to_ssa(tree, defn_env, phi_name=phi_name)
    if not isinstance(phi, str):
        defn_env[phi_name] = phi
    tree.body.append(ast.Return(ast.Name("O", ast.Load())))
    return ast_utils.compile_function_to_file(tree, defn_env=defn_env)