code: def DepthFirstTraversal(tree_node: NodeType) -> Iterable[NodeType]:
      """Iterate on a tree in a post-order traversal fashion"""
      seen: set[NodeType] = set()
  
      def _inner(node: NodeType) -> Iterable[NodeType]:
          if node in seen:
              return
          seen.add(node)
          for child in node.children:
              yield from _inner(child)
          yield node
  
      return _inner(tree_node)
  
imports: from __future__ import annotations
  from typing import Callable, Generic, Iterable, Iterator, Sequence, TypeVar
label_desc: Use image node_id 2 for calling a global function with example usage: DepthFirstTraversal(tree_node) and returns: _inner