really support iterables

if parsing generator, "all(isinstance(el, Interval) for el in iterable)" will exhaust it and self._data would be empty