public State<T> extendAll(byte[] bytes) {
	State<T> state = this;
	for (int i = 0; i < bytes.length; i++) {
	    if (state.edgeList.get(bytes[i]) != null)
		state = state.edgeList.get(bytes[i]);
	    else
		state = state.extend(bytes[i]);
	}
	return state;
    }