class_docstr: Setting ``pack_online=True`` packs online instead of after the fact,
  converting all distributions and values to Funsors as soon as they are available.
  
  Setting ``pack_online=False`` computes information necessary to do packing after execution.
  Each sample site is annotated with a ``dim_to_name`` dictionary,
  which can be passed directly to :func:`~pyro.contrib.funsor.to_funsor`.
code: def __init__(
      self, graph_type=None, param_only=None, pack_online=True
  ):
      super().__init__(graph_type=graph_type, param_only=param_only)
      self.pack_online = True if pack_online is None else pack_online
  
file_path: pyro/pyro/contrib/funsor/handlers/trace_messenger.py
imports: import funsor
  import torch
  from pyro.contrib.funsor.handlers.primitives import to_funsor
  from pyro.contrib.funsor.handlers.runtime import _DIM_STACK
  from pyro.poutine.subsample_messenger import _Subsample
  from pyro.poutine.trace_messenger import TraceMessenger
label_desc: Use image node_id 1 to create a new TraceMessenger object from inherited base classes: OrigTraceMessenger with example: obj = TraceMessenger(graph_type, param_only, pack_online)