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 _pyro_post_markov_chain(self, msg):
      # add step information to the trace
      self.trace.add_node(msg["name"], **msg.copy())
  
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 3 for calling the TraceMessenger obj's underlying member method code with example usage: obj._pyro_post_markov_chain(msg) without return types