docs: def set_size(self, size, is_free=None):  #pylint:disable=arguments-differ
          """
          Use this to set the size on a chunk. When the chunk is new (such as when a free chunk is shrunk to form an
          allocated chunk and a remainder free chunk) it is recommended that the is_free hint be used since setting the
          size depends on the chunk's freeness, and vice versa.
  
          :param size: size of the chunk
          :param is_free: boolean indicating the chunk's freeness
          """
          self._set_leading_size(size)
          next_chunk = self.next_chunk()
          if is_free is not None:
              if next_chunk is not None:
                  next_chunk.set_prev_freeness(is_free)
              else:
                  self.heap._set_final_freeness(is_free)
          if is_free is not None and is_free or self.is_free():
              if next_chunk is not None:
                  self.state.memory.store(next_chunk.base, size)