<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save_at(self, path, writer=None):
 """ Save this corpus at the given path. If the path differs from the current path set, the path gets updated. Parameters: path (str):
 Path to save the data set to. writer (str, CorpusWriter):
 The writer or the name of the reader to use. """


        if writer is None:
            from . import io
            writer = io.DefaultWriter()
        elif type(writer) == str:
            # If a loader is given as string, try to create such a loader.
            from . import io
            writer = io.create_writer_of_type(writer)

        writer.save(self, path)

        self.path = path