docs: def derive_container_context(self, ion_type, whence):
          """Derives a container context as a child of the current context."""
          if ion_type is IonType.STRUCT:
              container = _C_STRUCT
          elif ion_type is IonType.LIST:
              container = _C_LIST
          elif ion_type is IonType.SEXP:
              container = _C_SEXP
          else:
              raise TypeError('Cannot derive container context for non-container type %s.' % (ion_type.name,))
          return _HandlerContext(
              container=container,
              queue=self.queue,
              field_name=self.field_name,
              annotations=self.annotations,
              depth=self.depth + 1,
              whence=whence,
              value=None,  # containers don't have a value
              ion_type=ion_type,
              pending_symbol=None
          )