code: def resolve_partial(partial: "EditablePartial[T]") -> T:
      """
      Recursively resolves a collection of Partials into whatever type they are
      """
      if isinstance(partial, EditablePartial):
          partial.args = resolve_partial(partial.args)
          partial.kwargs = resolve_partial(partial.kwargs)
          return partial()
      elif isinstance(partial, list):
          return [resolve_partial(x) for x in partial]
      elif isinstance(partial, dict):
          return {key: resolve_partial(x) for key, x in partial.items()}
      else:
          return partial
  
imports: import railroad
  import pyparsing
  import typing
  from typing import List, NamedTuple, Generic, TypeVar, Dict, Callable, Set, Iterable
  from jinja2 import Template
  from io import StringIO
  import inspect
label_desc: Use image node_id 2 for calling a global function with example usage: resolve_partial(partial) and returns: partial, unknown, unknown, partial