code: private State createSuffix(Word<? extends I> suffix, Acceptance acc) {
          StateSignature sig = new StateSignature(alphabetSize, acc);
          sig.updateHashCode();
          State last = replaceOrRegister(sig);
  
          int len = suffix.length();
          for (int i = len - 1; i >= 0; i--) {
              sig = new StateSignature(alphabetSize, Acceptance.DONT_KNOW);
              I sym = suffix.getSymbol(i);
              int idx = inputAlphabet.getSymbolIndex(sym);
              sig.successors.array[idx] = last;
              sig.updateHashCode();
              last = replaceOrRegister(sig);
          }
  
          return last;
      }
docs: Creates a suffix state sequence, i.e., a linear sequence of states connected by transitions labeled by the
  letters of the given suffix word.
  
  @param suffix
  the suffix word
  @param acc
  the acceptance status of the final state
  
  @return the first state in the sequence