code: def delayed_unpacking(self, container, fun, *args, **kwargs):
          
          try:
              self._delayed += 1
              blob = self._begin()
              try:
                  fun(*args, **kwargs)
                  self._commit(blob)
                  return container
              except DelayPacking:
                  self._rollback(blob)
                  continuation = (fun, args, kwargs)
                  self._pending.append(continuation)
                  return container
          finally:
              self._delayed -= 1
docs: Should be used when unpacking mutable values.
          This allows circular references resolution by pausing serialization.