@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!(obj instanceof ConciseSet))
			return super.equals(obj);
		
		final ConciseSet other = (ConciseSet) obj;
		if (simulateWAH != other.simulateWAH)
			return super.equals(obj);
		
		if (size() != other.size())
			return false;
		if (isEmpty())
			return true;
		if (last != other.last)
			return false;
        for (int i = 0; i <= lastWordIndex; i++)
            if (words[i] != other.words[i])
                return false;
		return true;
	}