code: def prev_chunk(self):
          
          if self.is_prev_free():
              return PTChunk(self.base - self.prev_size(), self.state)
          else:
              raise SimHeapError("Attempted to access the previous chunk, but it was not free")
docs: Returns the chunk immediately prior (and adjacent) to this one, if that chunk is free. If the prior chunk is not
          free, then its base cannot be located and this method raises an error.
  
          :returns: If possible, the previous chunk; otherwise, raises an error