def __next(self):
        """
        Evaluate the next element of the tail, and add it to the head.
        """
        if self.__is_evaluated:
            raise StopIteration
        else:
            try:
                next_iter = next(self.__tail)
                if len(self.__head) > 0:
                    unify(typeof(self[0]), typeof(next_iter))
                self.__head.append(next_iter)
            except StopIteration:
                self.__is_evaluated = True
        return
dataset/ETHPy150Open billpmurphy/hask/hask/lang/lazylist.py/List.__next/original