class_docstr: Given a stochastic function with some batched sample statements and
  masking tensor, mask out some of the sample statements elementwise.
  
  :param fn: a stochastic function (callable containing Pyro primitive calls)
  :param torch.BoolTensor mask: a ``{0,1}``-valued masking tensor
      (1 includes a site, 0 excludes a site)
  :returns: stochastic function decorated with a :class:`~pyro.poutine.scale_messenger.MaskMessenger`
code: def _process_message(self, msg: "Message") -> None:
      msg["mask"] = (
          self.mask if msg["mask"] is None else msg["mask"] & self.mask
      )
  
imports: from typing import TYPE_CHECKING, Union
  import torch
  from pyro.poutine.messenger import Messenger
label_desc: Use image node_id 2 for calling the MaskMessenger obj's underlying member method code with example usage: obj._process_message(msg) without return types