public boolean hasNext() 
	{
		if (left.hasNext())
			return true;
		else if (right.hasNext())
			return true;
		else if (last_choice == null)
			return false;
		else if (last_choice == left && !rightEOF)
			return ((Comparable)left.current()).compareTo(right.current()) < 0;
		else if (last_choice == right && !leftEOF)
			return ((Comparable)right.current()).compareTo(left.current()) < 0;			
		else return false;
	}