*/
	public void reduce(List<T> list) {
		ListIterator<T> liter = list.listIterator();
		for (;liter.hasNext();) {
			T next = liter.next();
			Set<T> noFollowSet = noFollow(next);
			while (liter.hasNext()) {
				if (!noFollowSet.contains(liter.next())) {
					liter.previous();
					break;
				}
				else
					liter.remove();
			}
		}
	}