'Merges the SimFile object with `others`.'

def merge(self, others, merge_conditions, common_ancestor=None):

    if (not all((isinstance(oth, SimFile) for oth in others))):
        raise SimMergeError('merging    files    of    different    types    is    not    supported')
    all_files = (list(others) + [self])
    if (len(set((o.pos for o in all_files))) > 1):
        l.warning('Cheap    HACK    to    support    multiple    file    positions    in    a    merge.')
        self.pos = max(self.state.se.max(self.pos), max((o.state.se.max(o.pos) for o in others)))
    return self.content.merge([o.content for o in others], merge_conditions, common_ancestor=common_ancestor)
