def fix_argument_only(self):
        # for idx, branch in enumerate(self):
        #     if isinstance(branch[0], Either):
        #         self[idx] = branch.fix()
        first_type = type(self[0])
        if first_type not in (Required, Optional):
            return self
        for branch in self:
            if not (len(branch) == 1 and
                    isinstance(branch, first_type) and
                    isinstance(branch[0], Argument)):
                logger.debug('fix %r not change', self)
                return self
        else:
            first = self[0][0]
            for each in self:
                first.names.update(each[0].names)
            result = first_type(first)
            logger.debug('fix %r -> %r', self, result)
            return result
fix_argument_only() -> Either or Unit(Argument)
dataset/ETHPy150Open TylerTemp/docpie/docpie/element.py/Either.fix_argument_only