class_docstr: Dict-like object to hold immutable latent state.
  
  This must either be given a name when constructed::
  
      latent = named.Dict("root")
  
  or must be immediately stored in a ``named.Object``::
  
      latent = named.Object("root")
      latent.xs = named.Dict()  # Must be bound to a Object before use.
  
  .. warning:: This data structure is write-once: data may be added but may
      not be mutated or removed. Trying to mutate this data structure may
      result in silent errors.
code: def __setitem__(self, key, value):
      name = "{}[{!r}]".format(self._name, key)
      if key in self:
          old = super().__getitem__(key)
          if not isinstance(old, Object) or not old._is_placeholder:
              raise RuntimeError("Cannot overwrite {}".format(name))
      if isinstance(value, Object):
          raise RuntimeError(
              "Cannot store named.Object {} in named.Dict {}".format(
                  value, self._name
              )
          )
      elif isinstance(value, (List, Dict)):
          value._set_name(name)
      super().__setitem__(key, value)
  
imports: import functools
  import pyro
label_desc: Use image node_id 5 for calling the Dict obj's underlying member method code with example usage: obj.__setitem__(key, value) without return types