If count is 0, we remove all elements equal to value, so we know we have
        nothing to index, and this value to deindex. In other case, we don't
        know how much elements will remain in the list, so we have to do a full
        deindex/reindex. So do it carefuly.

def _call_lrem(self, command, count, value, *args, **kwargs):
        """
        If count is 0, we remove all elements equal to value, so we know we have
        nothing to index, and this value to deindex. In other case, we don't
        know how much elements will remain in the list, so we have to do a full
        deindex/reindex. So do it carefuly.
        """
        if not count:
            if self.indexable:
                self.deindex([value])
            return self._traverse_command(command, count, value, *args, **kwargs)
        else:
            return self._reset(command, count, value, *args, **kwargs)