<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_module(self, path, module, change_time=None):
 """Saves the specified module and its contents to the file system so that it doesn't have to be parsed again unless it has changed."""

        #First, get a list of the module paths that have already been 
        #pickled. We will add to that list of pickling this module.
        if settings.use_filesystem_cache == False:
            return 

        self.__index = None
        try:
            files = self._index
        except KeyError:
            files = {}
            self._index = files

        target_path = self._get_hashed_path(path)
        with open(target_path, 'wb') as f:
            pickle.dump(module, f, pickle.HIGHEST_PROTOCOL)
            if change_time is None:
                files[path] = module[0].change_time
            else:
                files[path] = change_time

        #Save the list back to the disk
        self._flush_index()